对于我们的 Cypress E2E 测试,我们使用如下页面对象(https://github.com/OWASP/wrongsecrets/blob/master/src/test/e2e/cypress/pages/homePage.js):
export default class HomePage {
static CHALLENGE_TABLE = 'challenge-overview'
static CHALLENGE_TABLE_ROW = 'challenge-row'
static CHALLENGE_0_COMPLETED = '"challenge-0_completed-link"'
static TOTAL_SCORE = 'total-score'
}
当我运行 eslint9 时,我得到:
/home/runner/work/wrongsecrets/wrongsecrets/src/test/e2e/cypress/pages/homePage.js
2:26 error Parsing error: Unexpected token =
虽然我的 eslint.config.mjs 是:
import { FlatCompat } from '@eslint/eslintrc'
import mochaPlugin from 'eslint-plugin-mocha'
import globals from "globals";
const compat = new FlatCompat()
export default [
{
languageOptions: {
ecmaVersion: 2022,
sourceType: "commonjs",
globals:{
...globals.browser
}
},
},
mochaPlugin.configs.flat.recommended, {
rules: {
'mocha/no-exclusive-tests': 'error',
'mocha/no-skipped-tests': 'error',
'mocha/no-mocha-arrows': 'off'
}
},
...compat.config(
{
extends: ['plugin:cypress/recommended'],
rules: {
'cypress/no-unnecessary-waiting': 'off'
}
})
]
我的 eslint.config.mjs 有什么问题吗?如何让 Eslint 接受静态属性?或者我的静态属性不再正确定义?你能帮我吗?
如果使用静态属性,eslint 配置需要使用 babel 作为解析器。您可以在平面配置系统中以以下格式执行此操作。我已经使用了没有配置的 babel。
import { FlatCompat } from '@eslint/eslintrc';
import mochaPlugin from 'eslint-plugin-mocha';
import globals from 'globals';
import babelParser from "@babel/eslint-parser";
const compat = new FlatCompat();
export default [
{
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: {
...globals.browser,
},
parser: babelParser,
parserOptions: {
requireConfigFile: false,
babelOptions: {
presets: ['@babel/preset-env'],
},
},
},
},
mochaPlugin.configs.flat.recommended,
{
rules: {
'mocha/no-exclusive-tests': 'error',
'mocha/no-skipped-tests': 'error',
'mocha/no-mocha-arrows': 'off',
},
},
...compat.config({
extends: ['plugin:cypress/recommended'],
rules: {
'cypress/no-unnecessary-waiting': 'off',
},
}),
];
我希望这有帮助!