在处理部分测试时,fdescribe()
和fit()
非常适合减少噪声。在合并我的分支到master之前,有时我忘记将它们改回describe()
/it()
。 (在编写代码时,可以将它们放在单独的分支中是可以的-即,预先提交检查对我不起作用。)
我的CI环境是Codeship。如果有任何针对性的方法遇到问题,是否有解决方案会使Codeship中的测试失败?
使用no-focused-tests之类的东西就可以了。知道如何在Codeship中启用此规则作为错误并在本地将其禁用吗?
最佳答案
您可以结合使用环境变量和重新定义fdescribe/fit全局函数:
npm i --save cross-env
"scripts": {
"test": "jasmine",
"test-safe": "cross-env FOCUSED_TESTS=off jasmine"
},
if (process.env.FOCUSED_TESTS === "off") {
console.log("Focused tests must be off");
global.fdescribe = global.fit = function() {
throw new Error("fdescribe and fit are disabled in this environment");
};
}
else {
console.log("Focused tests enabled");
}
npm run test-safe
而不是npm run test