我试图使用ESLint linter与Jest测试框架。
Jest测试使用一些全局变量运行,比如Jest
,我需要告诉linter关于它的信息;但棘手的是目录结构,Jest将测试与源代码一起嵌入\uuuuuuuuuuuuuuuuu
文件夹中,因此目录结构类似于:
src
foo
foo.js
__tests__
fooTest.js
bar
bar.js
__tests__
barTest.js
通常,我会将所有测试放在一个目录下,我可以在那里添加一个.eslintrc
文件来添加全局变量。。。但是我当然不想在每一个\uuu test\uu
目录中添加.eslintrc
文件。
目前,我刚刚将测试全局变量添加到了global.eslintrc
文件中,但由于这意味着我现在可以在非测试代码中引用jest
,所以这似乎不是“正确”的解决方案。
有没有办法让eslint根据基于目录名的模式或类似的模式应用规则?
您还可以在测试文件中设置测试环境,如下所示:
/* eslint-env jest */
describe(() => {
/* ... */
})
ESLint支持这个版本
/*
.eslintrc.js
*/
const ERROR = 2;
const WARN = 1;
module.exports = {
extends: "eslint:recommended",
env: {
es6: true
},
overrides: [
{
files: [
"**/*.test.js"
],
env: {
jest: true // now **/*.test.js files' env has both es6 *and* jest
},
// Can't extend in overrides: https://github.com/eslint/eslint/issues/8813
// "extends": ["plugin:jest/recommended"]
plugins: ["jest"],
rules: {
"jest/no-disabled-tests": "warn",
"jest/no-focused-tests": "error",
"jest/no-identical-title": "error",
"jest/prefer-to-have-length": "warn",
"jest/valid-expect": "error"
}
}
],
};
以下是eslint config的“扩展覆盖”限制的一个解决方法(从这里的另一个答案开始,投票表决!):
overrides: [
Object.assign(
{
files: [ '**/*.test.js' ],
env: { jest: true },
plugins: [ 'jest' ],
},
require('eslint-plugin-jest').configs.recommended
)
]
从…起https://github.com/eslint/eslint/issues/8813#issuecomment-320448724
文档显示您现在可以添加:
"env": {
"jest/globals": true
}
添加到您的.eslintrc
,它将向您的环境添加所有与笑话相关的内容,从而消除linter错误/警告。
您可能需要包含插件:["jest"]到您的esconfig,并添加eslint-plugin-jest
插件,如果它仍然不工作。
问题内容: 我正在尝试测试是否调用componentWillMount,为此我的测试是 但是,即使调用componentWillMount方法,测试也不会通过。我在这里想念什么? 问题答案: 我不知道其他答案是否对您的问题有所帮助,但是您不需要测试componentWillMount。React应该已经为您完成了该测试。 与您的测试更相关的是测试您要在组件中使用该方法的功能或动作。 如果要进行一些
问题内容: 我在带有打字稿的React Router v5.1.2中使用UseHistory挂钩吗?运行单元测试时,我遇到了问题。 TypeError:无法读取未定义的属性“ history”。 我也尝试使用,但仍然无法正常工作。 问题答案: 浅化使用的反应功能组件时,我需要相同的内容。 在我的测试文件中解决了以下模拟问题:
我提到了这个答案,我该如何模拟java。时间本地日期。now()关于如何模拟我的LocalDateTime。now()调用。我基本上遵循了所有步骤,但只使用了LocalDateTime而不是LocalDate。 我的代码的功能是这样的,它应该只在一小时的第15或45分钟运行。因此,我将LOCAL\u DATE\u TIME静态变量设置为: 然后在我的@Before测试方法中,我有以下内容: 这是2
本节将介绍怎样在一个 TypeScript 项目中使用 ESLint 规范,至于为什么不推荐使用 TSLint,可以看下这篇文章:TypeScript 官方已经决定全面采用 ESLint,ESLint 的 TypeScript 解析器也成为独立项目,专注解决双方兼容性问题。 所以,同开发前端项目一样,熟练掌握 ESLint 规则,也成了 TypeScript 项目开发的必要条件。 1. 慕课解释
我想通过Grails 3后端从MySQL数据库中的iOS应用程序中保存微笑。到目前为止,我设法改变我的MySQL排序等utf8mb4,但我没有找到正确的方式如何连接我的后端到MySQL通过utf8mb4字符集。 我的连接url是: 将字符编码或字符集更改为utf8mb4会导致错误:不支持的字符编码'utf8mb4'。 我在build.gradle中的grails连接器是运行时'mysql: mys
我尝试在vuex的操作中使用vue路由器,这在本地主机上运行良好。 然而,当我试图通过从存储文件导入操作来准备存储(模拟)时,我得到了错误。 你能帮我解决这个问题吗? 版本 错误msg app/src/main。js app/src/store/main。js 应用程序/src/路由器/main.js 应用程序/测试/组件/主。测验js 组件