在处理部分测试时,fdescribe()fit()非常适合减少噪声。在合并我的分支到master之前,有时我忘记将它们改回describe()/it()。 (在编写代码时,可以将它们放在单独的分支中是可以的-即,预先提交检查对我不起作用。)

我的CI环境是Codeship。如果有任何针对性的方法遇到问题,是否有解决方案会使Codeship中的测试失败?

使用no-focused-tests之类的东西就可以了。知道如何在Codeship中启用此规则作为错误并在本地将其禁用吗?

最佳答案



您可以结合使用环境变量和重新定义fdescribe/fit全局函数:

  • npm i --save cross-env
  • package.json:
    "scripts": {
      "test": "jasmine",
      "test-safe": "cross-env FOCUSED_TESTS=off jasmine"
    },
    
  • disableFocusedTestsIfNecessary.js(在 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");
    }
    
  • 告诉codeship运行npm run test-safe而不是npm run test
  • 09-28 10:48