如何在夜视仪中运行单个测试

时间:2015-02-03 21:21:12

标签: functional-testing nightwatch.js

如何从以下测试中仅运行Test 3

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

6 个答案:

答案 0 :(得分:66)

添加了一个新参数 - testcase 来运行指定的测试用例。

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

自v0.6.0以来它是一项新功能

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

答案 1 :(得分:8)

您必须在测试目录下使用功能之前的特定标记将不同文件中的所有功能分开,然后使用 - 标记调用命令论点。请参阅wiki nightwatch tags page并观看此示例:

// --- 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
    },
}

如果你跑:

nightwatch.js --tag login

仅运行测试1 ,但如果您运行:

nightwatch.js --tag special
将执行

测试2 测试3

您可以指定多个标记

nightwatch.js --tag tag1 --tag tag2

将每个测试功能分开是必需的,因为Nightwatch使用 filematcher 处理每个文件。 See Github code

PD :如果文件有语法错误,则可能无法运行测试或未找到测试

答案 2 :(得分:7)

- testcase 标志可以用于从命令行运行单个测试,例如。

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

可以使用test groupstest tags完成此操作。您还可以使用--test标志执行单个测试,例如

nightwatch.js --test tests\demo.js

答案 3 :(得分:1)

对我来说,它仅适用于:

npm run test -- tests/01_login.js --testcase "Should login into Dashboard"

npm run <script> -- <test suite path> --testcase "<test case>"

package.json中的我的脚本:

"test": "env-cmd -f ./.env nightwatch --retries 2 --env selenium.chrome",

在守夜人版本1.3.4

您还可以使用标签:

npm run <script> -- <enviroment> <tag>
npm run test -- --env chrome --tag login

只需将其添加到您的测试用例中即可:

module.exports = {
  '@tags': ['login', 'sanity', 'zero1'],
...
}

答案 4 :(得分:0)

你可以这样做:

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

答案 5 :(得分:0)

另一种可能的方法是在每个要省略的测试用例上使用以下内容:

'@disabled': true,

如果您想测试它,可以简单地将其设置为false或删除。