eslint忽略带有某些文件夹的no-undef

时间:2019-12-27 02:08:13

标签: javascript jestjs eslint rules

我目前正在使用Jest测试我的api调用。我也使用eslint来检查测试中的代码,但是因为只使用了一个,所以我不需要定义诸如test()expect()之类的方法,所以当我运行eslint时,会出现诸如< / p>

   4:1  error  'test' is not defined    no-undef
   8:3  error  'expect' is not defined  no-undef

但是对于我开玩笑的文件,例如index.test.js,我的代码将是

test('API test', async () => {
  const response = await axios.post('api call', {});
  const { status, statusText, message } = response;
  expect(status).toBe(400);
  expect(statusText).toBe('Bad Request');
  expect(message).toBe('No password.');
});

如上所述,我不需要定义test()expect。我正在阅读eslint文档,但似乎没有看到一种可能的方法,仅忽略某些文件而不检查这些规则。我仍然想保留其他规则。

在此先感谢您的帮助建议。

P.S。我的.eslintrc看起来像

{
  "parser": "babel-eslint",
  "extends": "eslint:recommended",
  "env": {
    "commonjs": true,
    "es6": true,
    "node": true,
    "browser": false
  },
  "parserOptions": {
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true,
      "jsx": false
    },
    "sourceType": "module"
  },
  "globals": {
    "strapi": true
  },
  "rules": {
    "indent": ["error", 2, { "SwitchCase": 1 }],
    "linebreak-style": ["error", "unix"],
    "no-console": 0,
    "quotes": ["error", "single"],
    "semi": ["error", "always"],
    "multiline-ternary": ["error", "always"]
  }
}

1 个答案:

答案 0 :(得分:0)

如果您告诉ESLint the environment is jest test()expect()不会被认为是未定义的。由于开玩笑的默认测试文件为"**/*.spec.js", "**/__mocks__/**",因此建议您添加

.eslintrc
{
  // your configuration
  "overrides": [
    {
      "files": ["**/*.spec.js", "**/__mocks__/**"],
      "env": {
        "jest": true
      }
    }
  ]