已尝试使用runner方法执行冒烟/回归测试。但是需要在"node testrunner.ts“命令行中传递冒烟和回归。请参考以下代码:
const createTestCafe = require('testcafe');
var argv = require('minimist')(process.argv.slice(2));
let suite = argv.suite;
const browser = argv.browser;
let testcafe = null;
let runner = null;
createTestCafe('localhost', 1337, 1338)
.then(tc => {
testcafe = tc;
runner = testcafe.createRunner();
return runner
.browsers(['chrome --window-size=1440,900'])
.filter((testName, fixtureName, fixturePath, testMeta, fixtureMeta) => {
suite = {
smoke: fixtureMeta.Smoke === 'true',
regression: fixtureMeta.Regression === 'true',
};
return suite;
})
.reporter('list')
.run();
})
.then(failedCount => {
console.log('Tests failed: ' + failedCount);
testcafe.close();
})
使用node testrunner.ts --suite=regression
执行上述代码,但它执行包中的所有测试,包括冒烟测试用例。请让我知道当从命令行传递时,如何使用各自的套件名称执行测试用例。
发布于 2021-08-10 08:22:08
根据TestCafe文档,源文件中的每个测试都会调用传递给filter方法的回调函数。若要包含当前测试,则应返回true,若要排除它,则返回false。
代码示例中的回调函数始终返回suite
变量,并且该变量始终包含一个非空值,JavaScipt将该值强制转换为true
。这就是为什么TestCafe会执行测试套件中的每一个测试。
要实现所需的行为,请尝试按以下方式重写回调函数:
...
.filter((testName, fixtureName, fixturePath, testMeta, fixtureMeta) => {
return suite === 'regression' && fixtureMeta.Regression === 'true';
})
...
https://stackoverflow.com/questions/68561162
复制相似问题