【问题标题】:master runner in testcafe for several other runners?其他几个跑步者的 testcafe 中的主跑步者?
【发布时间】:2019-09-23 19:06:11
【问题描述】:

我有几个跑步者正在使用 promise.race 在特定时间完成测试用例 假设我有 runner1.js、runner2.js runner3.js,我如何创建一个主 runner 以便我可以一起运行所有这些 runner?

const createTestCafe = require('testcafe');
let testcafe = null;

// createTestCafe('localhost', 1337, 1338)
createTestCafe()
    .then(tc => {
        testcafe     = tc;
         //create test runner for configuring and launching test tasks
        const runner = testcafe.createRunner();



    return runner
        //run test from specified folders/files
        .src(['*the path to all runner.js*'])
        //configure the test runner to run tests in the specified browsers
        .browsers('chrome')
        .reporter('html-testrail')
        .run({skipJsErrors:true})             




    })


           .catch(failedCount => {
               console.log('Tests failed: ' + failedCount);
                testcafe.close();
            })

it's not working this way, any suggestions?

【问题讨论】:

    标签: testing automated-tests e2e-testing testcafe web-testing


    【解决方案1】:

    TestCafe 允许同时运行多个测试运行器。检查以下代码:

    const createTestCafe = require('testcafe');
    
    (async () => {
        const testCafe = await createTestCafe();
    
        const runner1 = testCafe
            .createRunner()
            .src('test1.js')
            .reporter([{ name: 'spec', output: 'report1.txt' }])
            .browsers('chrome');
    
        const runner2 = testCafe
            .createRunner()
            .src('test2.js')
            .reporter([{ name: 'spec', output: 'report2.txt' }])
            .browsers('firefox');
    
        await Promise.all([runner1, runner2].map(runner => runner.run()));
    
        await testCafe.close();
    })();
    

    【讨论】:

    • @Belym 谢谢!我理解这个概念,但是当我尝试你说它不起作用的代码时,你能指出我 testcafe 中任何有这个的文档吗?你知道你为什么要使用 map 吗?我们也可以使用 Promise.all().then?
    • @TS0306 我检查了 Andrey 的代码,它按预期工作。我们的文档中没有这样的案例,但我确认允许同时使用多个跑步者。这里不需要使用map 方法。您可以使用以下代码:await Promise.all([runner1.run(), runner2.run() ])。主要思想是runner.run方法返回一个promise,所以你可以很容易地在Promise.all()方法中使用它。
    猜你喜欢
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多