Testing 如何同时测试两个不同的测试组?

Testing 如何同时测试两个不同的测试组?,testing,automated-tests,e2e-testing,testcafe,web-testing,Testing,Automated Tests,E2e Testing,Testcafe,Web Testing,我正在尝试同时运行我的测试,但包括登录的测试除外 我尝试将测试分为两组(有登录和没有登录)。这两个小组并行运行。没有登录的测试彼此并发运行,但是有登录的测试一个接一个地运行。问题是runner只运行两次没有登录的测试。我在中看到了.系列功能讨论,我认为在这种情况下会有很大帮助 const createTestCafe=require('testcafe'); const config=require('./config'); const testArrayBuilder=require(“./T

我正在尝试同时运行我的测试,但包括登录的测试除外

我尝试将测试分为两组(有登录和没有登录)。这两个小组并行运行。没有登录的测试彼此并发运行,但是有登录的测试一个接一个地运行。问题是runner只运行两次没有登录的测试。我在中看到了.系列功能讨论,我认为在这种情况下会有很大帮助

const createTestCafe=require('testcafe');
const config=require('./config');
const testArrayBuilder=require(“./Tests/helpers/testArrayBuilder”);
让testSteps=require(“./Tests/helpers/testSteps”);
让我们去咖啡馆;
常量存储=进程['argv'][2],
名称=进程['argv'][3],
env=进程['argv'][4];
const testsFile=require(`./Tests/${store}/Tests.json`);
常量输出='日志/测试结果-'+store+'-'+env+'-'+name+'.json';
createTestCafe('localhost',0)
。然后(tc=>{
testcafe=tc;
const tests=getTests();
const runner=testcafe.createRunner();
如果(名称!=“全部”){
runner.filter(testName=>{
返回testName==name;
});
}
runner.reporter(['spec'{
名称:“json自定义”,
输出:输出
}]);
返回Promise.all(tests.map)(obj=>{
如果(obj.login==true){
//不要更改此项的数值,
//因为登录测试无法正常运行。
返回运行测试(运行程序,对象测试,1);
}否则{
返回运行测试(运行程序,对象测试,1);
}
}));
})
.然后(()=>{
testSteps.mergeWithReporter(输出);
testcafe.close();
});
const runTests=(运行程序、测试、窗口)=>{
回程转轮
.src(测试)
.browsers(config.browsers)
.并发性(windows)
.screenshots('logs/screenshots/',true)
.跑({
skipJsErrors:对,
检疫官:是的,
选择时间:20000,
断言超时:20000,
pageLoadTimeout:20000,
速度:0.5,
stopOnFirstFail:false
});
}
常量getTests=()=>{
const testsWithoutLogin=testArrayBuilder(testsFile[env],false);
交换机(存储){
案例“shop1”:
const testsWithLogin=testArrayBuilder(testsFile[env],true);
返回[{login:true,tests:testsWithLogin},{login:false,tests:testsWithoutLogin}];
案例“shop2”:
返回[{login:false,tests:testsWithoutLogin}];
}
}

请注意,如果我在runTests()中编写createRunner()部分,则会覆盖reporter。

我认为这里的问题是,在
Promise.race
函数中使用同一个运行程序执行并行测试。我建议您为两个测试集使用不同的跑步者。

所以我应该创建不同的跑步者,然后合并他们的记者?因为我需要将测试信息存储在一个reporter中,我认为有一种方法可以避免这种情况。当然,我不知道您的任务的细节,但我认为最好为每个跑步者提供一个单独的报告,然后合并它们。如果不希望合并它们,可以使用以下命令将控制台输出重定向到文件:
node index.js>report.txt
。但是,在这种情况下,您的报告将由两个运行者的输出混合。请参考要点了解我的意思谢谢你的帮助。我最终将两个自定义报告合并在一起。