我能够使用Jest测试多个文件,但我不知道如何测试单个文件。

我有:

执行npm install jest-cli——save-dev命令 更新包。Json: '{…"scripts": {"test": "jest"}…} 编写了许多测试。

运行npm测试可以正常工作(目前运行14个测试)。

如何测试单个文件,例如test app/foo/__tests__/bar.spec.js?

我已经尝试运行npm test app/foo/__tests__/bar.spec.js(从项目根),但我得到以下错误:

npm犯错!错误:ENOENT,打开'/node_modules/app/foo/tests/bar.spec.js/package.json'


当前回答

简单的方法是运行单个单元测试文件,就是在根文件夹内运行终端中的命令。

npm test <fileName.test.js>

// For example
npm test utils.test.js

我也尝试了Jest Runner扩展的Visual Studio代码,它工作得很好。

其他回答

当时我用的是:

yarn test TestFileName.spec.js

你不应该输入完整路径。对我来说,这在Windows 10电脑上是可行的。

import LoggerService from '../LoggerService ';

describe('Method called****', () => {
  it('00000000', () => {
    const logEvent = jest.spyOn(LoggerService, 'logEvent');
    expect(logEvent).toBeDefined();
  });
});

用法:

npm test -- __tests__/LoggerService.test.ts -t '00000000'

至少从2019年开始:

NPM test——bar.spec.js

2015年:

为了运行特定的测试,您需要使用jest命令。NPM测试无效。要在命令行上直接访问jest,可以通过npm i -g jest-cli或yarn global add jest-cli安装它。

然后使用jest bar.spec.js运行特定的测试。

注意:您不必输入测试文件的完整路径。参数被解释为正则表达式。完整路径的任何部分都可以唯一地标识一个文件。

如果你用的是纱线,就这样做

yarn test nameofthefile

eg:

yarn test file.test.js

用一个包裹。json脚本

在package.json中使用"scripts": {"test": "jest"}:

npm test -- foo/__tests__/bar.spec.js

直接使用jest-cli

Globally-installed:

jest foo/__tests__/bar.spec.js

本地安装:

./node_modules/.bin/jest foo/__tests__/bar.spec.js

使用——testPathPattern

testPathPattern选项具有将路径作为未命名的位置参数传递给jest-cli的等效效果。看到normalize.ts。

./node_modules/.bin/jest --testPathPattern foo/__tests__/bar.spec.js

测试两个或多个特定文件

文件名用逗号或空格分隔:

./node_modules/.bin/jest foo/__tests__/bar.spec.js,foo/__tests__/foo.spec.js
./node_modules/.bin/jest foo/__tests__/bar.spec.js foo/__tests__/foo.spec.js

多次传递——testPathPattern:

./node_modules/.bin/jest --testPathPattern foo/__tests__/bar.spec.js --testPathPattern foo/__tests__/foo.spec.js