Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida no Ex. 7 da Aula 7 - Testes de integração

Não consigo utilizar NODE_ENV=test realizando os testes com WIndows.

Comando: node NODE_ENV=test node_modules/mocha/bin/mocha

Resultado:

module.js:339 throw err; ^

Error: Cannot find module 'C:\Alura\nodeAula\casadocodigo\NODE_ENV=test' at Function.Module._resolveFilename (module.js:337:15) at Function.Module._load (module.js:287:25) at Function.Module.runMain (module.js:467:10) at startup (node.js:134:18) at node.js:961:3

9 respostas
solução

Oi Rafael, blz?

No prompt do Windows, vc precisa setar a variável separadamente do comando de execução do Node.

Você pode fazer isso invocando o seguinte comando:

SET NODE_ENV=test

Depois é só executar o node normalmente. Só lembre que assim essa variável fica com esse valor enquanto essa sessão do prompt estiver ativa, portanto para mudar o valor da variável vc precisa sempre executar o SET novamente.

Um outra opção seria incluir essa informação no package.json:

"scripts": { "start": "set NODE_ENV=test" }

E aí você adiciona ou remove conforme a necessidade da execução. =)

Funcionou perfeitamente, muito obrigado Julio.

Legal, Rafael! =D

Se puder, marca a resposta como solução pra fechar o tópico, por favor. =)

Valeu!

Legal estava com a mesma dúvida, resolveu! muito obrigado.

estava com a mesma duvida.. obrigado!!!!1

Obrigado! Parece que está é um duvida comum, poderia ser adicionado à aula

Eu estava com o mesmo problema e busquei uma solução que me deixasse mais satisfeito.

Esse foi meu resultado final

Meu resultado final foi colocar no package.json:

"scripts": {
    "test": "set NODE_ENV=test&& mocha --reporter spec"
  }

e rodar no prompt:

npm test

Mesma dúvida, respondida. Onde eu posso encontrar mais a respeito dessas configurações de SET e como saber o que colocar em scripts, porque eu sempre vejo a solução, mas não o porque de aplicar essas regras.

Para aprender a mexer com os scripts, mais a frente ele explica na aula, só que eu sou meio metido e já atropelei a matéria. O porquê de utilizar é que você basicamente roda vários comandos através de um apelido para ele

no meu caso, ao escrever npm run test ele roda os 2 comandos (setar o NODE_ENV e o mocha).

Parece simples 2 comandos, porém onde trabalho já possuímos 2 linhas grandes de configuração dentro de um script, imagine toda vez que for rodar o programa ter que escrever essas 2 linhas? Inviável certo?

Além disso, se você trabalha em equipe e você usa esses scripts configurados e a partir deste momento, toda vez que alguém executar o script "producao" é necessário (por exemplo) minificar o código, então você coloca no script e sempre que qualquer um da equipe rodar o comando "producao" automaticamente vai minificar o código sem que você precise avisar, além de evitar alguém esquecer a minificacao.

Em relação ao SET eu não utilizo muito, então usei só na aula, então não vou conseguir te ajudar, porém caso queira se aprofundar um pouco mais em comandos npm, você pode olhar esse link https://docs.npmjs.com/misc/config. Porém espero que alguém consiga te explicar melhor essa parte.