Exécuter des tests moka dans un environnement de test?
Je n'arrive pas à dire à moka pour exécuter ma suite de tests dans l'environnement de test.
app.js
app.configure('test', function(){
app.set('port', 3002);
});
test/test.café
app = require('../../app')
process.env.NODE_ENV = 'test'
describe 'some test', ->
it 'should pass', ->
Depuis que je suis exigeant l'application, lorsque j'exécute les tests je m'attends à voir
Express server listening on port 3002
et à la place je vois
Express server listening on port 3000
Paramètre un numéro de port différent dans un bloc de configuration dans app.js les rendements
Express server listening on port [whatever port I set in development block in app.js]
Je ne peux pas obtenir mes tests à exécuter dans un environnement de test. Des suggestions?
source d'informationauteur Feech
Vous devez vous connecter pour publier un commentaire.
Vous devez définir NODE_ENV avant d'exiger
app.js
:Vous ne pouvez pas changer le port d'écoute par
app.set
. Il n'y a qu'une façon de définir le port - la passer danslisten
méthode. Vous pouvez faire quelque chose comme ceci:Je voudrais prendre une approche différente de Vadim. À l'aide de Vadim exemple, vous pouvez au lieu de charger les paramètres de l'environnement basé sur votre
process.env.NODE_ENV
valeur. Je sais qu'il y en est une autre étape dans ma démarche, mais il est plus propre, extensible, et permettra d'éviter l'ajout de test des instructions conditionnelles dans votre logique.Cette approche utilise dotenvpuis de définir à la fois un
default
et untest
environnement de fichier dans la racine de l'application. Ces fichiers vous permettent de reconfigurer les propriétés au sein de votre application sans modifier votre JavaScript.Ajouter dotenv comme un
dependency
dans votrepackage.json
fichier, puis installer les nouveaux paquets dans votrenode_modules
dossier:paquet.json
ligne de commande
Changer votre
app.js
de sorte que le port est à l'aide d'une valeur d'environnement définie à partir de l'chargé .fichier env.Créer deux fichiers dans votre dossier racine,
.env
&.env.test
il suffit d'ajouter la ligne ci-dessous. Ces fichiers sont de simples paires clé-valeur sur chaque ligne qui peut être consulté lorsque le préfixeprocess.env.
..env
.env.test
À partir de la ligne de commande ou lorsque vous appelez vos tests, je mettrais
NODE_ENV
:Lorsque vous exécutez l'application dans tous les autres cas, sans réglage de
NODE_ENV
les valeurs par défaut dans le.env
fichier sera chargé dansprocess.env
.