首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在命令行中将套件名称作为参数传递

如何在命令行中将套件名称作为参数传递
EN

Stack Overflow用户
提问于 2021-07-28 13:17:20
回答 1查看 63关注 0票数 0

已尝试使用runner方法执行冒烟/回归测试。但是需要在"node testrunner.ts“命令行中传递冒烟和回归。请参考以下代码:

代码语言:javascript
运行
复制
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执行上述代码,但它执行包中的所有测试,包括冒烟测试用例。请让我知道当从命令行传递时,如何使用各自的套件名称执行测试用例。

EN

回答 1

Stack Overflow用户

发布于 2021-08-10 08:22:08

根据TestCafe文档,源文件中的每个测试都会调用传递给filter方法的回调函数。若要包含当前测试,则应返回true,若要排除它,则返回false。

代码示例中的回调函数始终返回suite变量,并且该变量始终包含一个非空值,JavaScipt将该值强制转换为true。这就是为什么TestCafe会执行测试套件中的每一个测试。

要实现所需的行为,请尝试按以下方式重写回调函数:

代码语言:javascript
运行
复制
...
.filter((testName, fixtureName, fixturePath, testMeta, fixtureMeta) => {
   return suite === 'regression' && fixtureMeta.Regression === 'true';
})
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68561162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档