gpt4 book ai didi

javascript - 将 testRunner 设置为 jest-circus 访问 jasmine 会导致 : ReferenceError: jasmine is not defined

转载 作者:行者123 更新时间:2023-12-05 00:27:10 24 4
gpt4 key购买 nike

默认 jest让您轻松访问jasmine全局范围内。但是一旦你切换testRunnerjest-circus , jasmine是未定义的。以下是一个最小的、可重现的示例:
babel.config.js

module.exports = {
presets: [["@babel/preset-env", { targets: { node: "current" } }]],
};
jasmine.spec.js
it("check jasmine", () => {
console.log(jasmine);
});
jest.config.js
module.exports = {
rootDir: ".",
testRunner: "jest-circus/runner",
};
包.json
{
"name": "test-jest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "jest"
},
"author": "",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.12.10",
"@babel/preset-env": "^7.12.11",
"babel-jest": "^26.6.3",
"jest": "^26.6.3",
"jest-circus": "^26.6.3"
}
}
运行此测试将导致以下输出:
$ npm test

> test-jest@1.0.0 test /Users/yusufaran/Projects/test/test-jest
> jest

FAIL ./jasmine.spec.js
✕ check jasmine (1 ms)

● check jasmine

ReferenceError: jasmine is not defined

1 | it("check jasmine", () => {
> 2 | console.log(jasmine);
| ^
3 | });
4 |

at Object.<anonymous> (jasmine.spec.js:2:15)

Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 total
Snapshots: 0 total
Time: 1.01 s
Ran all test suites.
npm ERR! Test failed. See above for more details.
如果您删除/评论 testRunner输入 jest.config.js (所以它回退到默认运行器)它按预期工作。
问题
如何访问全局 jasmine带有 testRunner 的对象设置为 jest-circus/runner ?如果我不能,为什么?

最佳答案

使用 jest-circus 时无法访问 jasmine。这是设计使然。 jest-circus 是一个从头开始构建的新测试运行程序。它模仿 jasmine 定义测试的功能(即 describeit ,除了 expect 断言和 spy 之外的所有内容)。
如果你依赖 Jasmine ,那么npm install -D jest-jasmine2并在您的 Jest 配置中使用它:

{
testRunner: 'jest-jasmine2'
}

关于javascript - 将 testRunner 设置为 jest-circus 访问 jasmine 会导致 : ReferenceError: jasmine is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65889205/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com