【发布时间】:2020-08-28 05:05:20
【问题描述】:
对不起!我想不出一个更好的标题,对 javascript 世界来说是新的。
我有一个abc.js 文件,并且想在每个it 方法中添加TestFilter。目前,我正在使用下面显示的方法。而不是在每个前面写TestFilter,it 方法有没有优化的方法来实现这一点?请推荐
import TestFilter from '../support/TestFilter';
describe('Test A', () => {
TestFilter(['smoke'],()=>it.only('should run test A successfully', () => {
expect(1 + 1).to.be.equal(2);
}));
TestFilter(['regression'],()=> it('should run test A successfully', () => {
expect(1 + 1).to.be.equal(2);
}));
});
TestFilter.js
const TestFilter = (definedTags, runTest) => {
if (Cypress.env('testtag')) {
const tags = Cypress.env('testtag').split(',');
const isFound = definedTags.some((definedTag) => tags.includes(definedTag));
if (isFound) {
runTest();
}
}else{
runTest();
}
};
export default TestFilter;
【问题讨论】:
-
请发布您希望代码显示方式的示例。
-
您的
TestFilter调用提供了不同的过滤器值 - 否则您将如何表达每个测试的过滤器规则? -
另外,这是什么测试框架或库?
-
@Dai 这是 cypress 框架。在运行时根据通过 cmd 提供的标签进行过滤。为了更好地理解,我添加了 TestFilter.js 文件。
-
@Dai 我只希望代码以更统一的方式呈现,因此我不必在每个 it 方法中添加 TestFilter。我想过使用装饰器,但不知道该怎么做。
标签: javascript node.js cypress