【问题标题】:How to run a single test in nightwatch如何在 nightwatch 中运行单个测试
【发布时间】:2015-04-03 05:50:57
【问题描述】:

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

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

【问题讨论】:

    标签: functional-testing nightwatch.js


    【解决方案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'],
    ...
    }
    

    【讨论】:

      【解决方案2】:

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

      '@disabled': true,
      

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

      【讨论】:

        【解决方案3】:

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

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

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

        nightwatch.js --test tests\demo.js
        

        【讨论】:

          【解决方案4】:

          你可以这样做:

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

          【讨论】:

            【解决方案5】:

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

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

            这是自 v0.6.0 以来的新功能

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

            【讨论】:

            • 哇!谢谢@NicoPennec
            【解决方案6】:

            必须在函数前使用特定标签,并在tests目录下将所有函数分隔在不同文件中,然后用--tag调用命令争论。请参阅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
            

            只运行 Test 1,但是如果你运行:

            nightwatch.js --tag special
            

            Test 2Test 3 将被执行。

            你可以指定多个标签

            nightwatch.js --tag tag1 --tag tag2
            

            分离每个测试函数是强制性的,因为 Nightwatch 使用 filematcher 处理每个文件。 See Github code.

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

            【讨论】:

            • 这太棒了——我认为如果它像 mocha 和 grepping 一样工作,那将是最佳的。这就是我所希望的!
            • 是的,但它不适用于这种方式。如果您愿意,请查看来自 github nightwatch repo 的 filematcher.js util lib
            • @albertoiNET 你能提供一个以编程方式使用守夜人的解决方案吗?意思是,运行一个调用nightwatch.runner的节点脚本
            猜你喜欢
            • 1970-01-01
            • 2018-03-30
            • 2019-12-19
            • 2017-12-01
            • 2015-12-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多