在我的项目文件夹中,我有很多子文件夹,每个子文件夹中都有js代码和test.js文件。我想能够测试特定的文件。例如,假设在我们的项目文件夹中有“fib”文件夹:
C:.
└───exercises
└───fib
fib-test.js
index.js
现在,我从练习文件夹中执行jest命令:
jest fib\fib-test.js
我得到:
No tests found, exiting with code 1
Run with `--passWithNoTests` to exit with code 0
In C:\exercises
62 files checked.
testMatch: **/__tests__/**/*.[jt]s?(x), **/?(*.)+(spec|test).[tj]s?(x) - 26 matches
testPathIgnorePatterns: \\node_modules\\ - 62 matches
testRegex: - 0 matches
Pattern: fib\fib-test.js - 0 matches
如果我只是开玩笑,我会做所有的测试。如果我将fib文件夹移出练习文件夹,它会按预期工作。以下是所有文件的代码:
index.js:
function fib(n) {}
module.exports = fib;
test.js:
const fib = require('./index');
test('Fib function is defined', () => {
expect(typeof fib).toEqual('function');
});
test('calculates correct fib value for 1', () => {
expect(fib(1)).toEqual(1);
});
test('calculates correct fib value for 2', () => {
expect(fib(2)).toEqual(1);
});
test('calculates correct fib value for 3', () => {
expect(fib(3)).toEqual(2);
});
test('calculates correct fib value for 4', () => {
expect(fib(4)).toEqual(3);
});
test('calculates correct fib value for 15', () => {
expect(fib(39)).toEqual(63245986);
});
package.json:
{
"name": "dev",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"jest": {
"testEnvironment": "node"
},
"author": "",
"license": "ISC"
}
我尝试了所有这些解决方案,但都没有成功:
但是,通过使用--watch标志运行jest命令,然后在regex菜单中输入fib\test.js的相对路径,就能够获得所需的结果。问题是如何做到这一点,而不进入手表菜单?
fib-test.js
重命名为fib.test.js
jestfib.test.js
jest
将运行您指定的文件我看到你的问题隐含着一些假设。如果明确列出问题,可以使问题更具体:
jest.config.js
位于C:\exercises
对于(1),我手头没有Windows计算机,请运行
撇开假设不谈,错误发生在测试文件名:fib test.js
jest
正在查找XXX.test.js
并且将不匹配
testMatch: ... **/?(*.)+(spec|test).[tj]s?(x) ...
一旦将文件重命名为fib.test.js
,jest-fib.test.js
将从项目根目录或jest.config.js
处搜索任何子文件夹;和匹配
我的jest
版本:"ts-jest":"^27.0.3"
再次查看完整的错误消息:
testMatch: **/__tests__/**/*.[jt]s?(x), **/?(*.)+(spec|test).[tj]s?(x) - 26 matches
实际上,您可以将所有测试用例分组到
因为
jest
查看每个子文件夹,所以实际上可以将文件夹名称放在测试文件之前:
jest-fib/fib.test.js
本质上等同于jest-fib.test.js
不过,笑话看不出有什么理由这么麻烦自己。
我是单元测试新手,我只想测试位于特定目录中的文件 如何指定只对特定目录上的文件运行测试,而忽略其他文件 所以我通过npm安装了jest 并在package.json中指定了测试命令 上面运行的所有文件,但我希望它运行的文件在一个特定的目录,例如 我要怎么进行
问题内容: 我有一个取决于环境变量的应用程序,例如: 我想测试例如: 可以通过节点env变量设置APP_PORT。 或某个应用程序正在使用以下命令设置的端口上运行 我如何用Jest做到这一点?我可以在每次测试之前设置这些变量,还是应该以某种方式模拟它? 问题答案: 在每次测试之前重设resetModules,然后在测试内部动态导入模块很重要: 如果您在运行Jest之前寻找一种加载env值的方法,请
null
我试图理解Jests的异步测试。 我的模块有一个函数,它接受一个布尔值并返回一个值的承诺。executer函数调用 ,在超时回调中,promise根据最初提供的布尔值进行解析或拒绝。代码如下所示: 我想用Jest来测试一下。我想我需要使用Jest提供的模拟计时器,所以我的测试脚本看起来有点像这样: 无论是否调用 ,我都会得到以下错误/失败测试 你能解释一下我哪里出错了吗?我该怎么做才能通过考试,保
我使用Jest框架,并有一个测试套件。我想关闭/跳过我的一个测试。 谷歌文档并没有给我答案。 你知道要查的答案或信息来源吗?