我能够使用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代码,它工作得很好。

其他回答

你所要做的就是念咒语

npm test -- SomeTestFileToRun

standalone——是*nix的魔法,用于标记选项的结束,这意味着(对于NPM)之后的所有内容都传递给正在运行的命令,在这种情况下是玩笑。顺便说一句,您可以这样显示Jest的使用说明

npm test -- --help

总之,高喊

npm test -- Foo

运行命名文件(FooBar.js)中的测试。不过,你应该注意:

Jest将名称视为区分大小写的,因此如果您正在使用不区分大小写但保留大小写的文件系统(如Windows NTFS),则可能会遇到奇怪的情况。 Jest似乎将规范视为前缀。

所以上面的咒语会

运行FooBar.js, Foo.js和FooZilla.js 但不是运行foo.js

你可以使用npm test的文件名——

npm test -- fileName.jsx 

也可以通过以下方法实现:

jest --findRelatedTests path/to/fileA.js

参考(Jest CLI选项)

如何在Nx monorepo中实现呢?下面是答案(在目录/path/to/workspace中):

npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts

参考和更多信息:如何在nx# 6中测试单个Jest测试文件

运行单个测试:

npm test -t ValidationUtil # `ValidationUtil` is my module `ValidationUtil.spec.js`

-t -在后面,放置一个包含测试名称的正则表达式。

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'