web-dev-qa-db-fra.com

Comment exécuter un seul test dans nightwatch

Comment exécuter uniquement Test 3 à partir des tests suivants?

module.exports = {
  'Test 1':function(){},
  'Test 2':function(){}
  'Test 3':function(){}
}
31

Un nouveau paramètre --testcase a été ajouté pour exécuter un testcase spécifié.

nightwatch.js --test tests\demo.js --testcase "Test 1"

C'est une nouvelle fonctionnalité depuis la v0.6.0

https://github.com/beatfactor/nightwatch/releases/tag/v0.6.0

62
Nicolas Pennec

Vous devez utiliser des balises spécifiques avant que la fonction et séparent toutes les fonctions de différents fichiers sous le répertoire tests, puis appelez la commande avec l'argument --tag. Voir page des balises wiki nightwatch et regardez cet exemple:

// --- file1.js ---
module.exports = {
    tags: ['login'],
    'Test 1':function(){
        //TODO test 1
    }
};

// --- file2.js ---
module.exports = {
    tags: ['special', 'createUser'],
    'Test 2':function(){
        //TODO test 2
    },
};

// --- file3.js ---
module.exports = {
    tags: ['logoff', 'special'],
    'Test 3':function(){
        //TODO test 3
    },
}

Si vous courez:

nightwatch.js --tag login

ne lance que Test 1, mais si vous exécutez:

nightwatch.js --tag special

Test 2 et Test 3 seront exécutés.

Vous pouvez spécifier plus d'un tag 

nightwatch.js --tag tag1 --tag tag2

Séparer chaque fonction de test est obligatoire car Nightwatch a traité avec filematcher chaque fichier. _ { Voir le code Github } _.

PD: si le fichier contient des erreurs de syntaxe, il est possible que le test ne s'exécute pas ou que le test ne soit pas trouvé

8
albertoiNET

Depuis la version 0.6, l’indicateur --testcase peut être utilisé pour exécuter un seul test à partir de la ligne de commande, par exemple.

nightwatch.js --test tests\demo.js --testcase "Test 1"

Cela peut être fait en utilisant groupes de tests _ ou étiquettes de test Vous pouvez également exécuter un seul test avec l'indicateur --test, par exemple.

nightwatch.js --test tests\demo.js
7
Daniel Wärnå

vous pouvez faire quelque chose comme:

node nightwatch.js -e chrome --test tests/login_test --testcase tc_001
0
Kai

Une autre solution consiste à utiliser les éléments suivants pour chaque cas de test que vous souhaitez omettre: 

'@disabled': true,

Cela peut simplement être défini sur false ou supprimé si vous souhaitez le tester.

0
DoN_Dan