我能够使用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'


当前回答

对于NestJS用户,简单的替代方法是使用,

npm test -t <name of the spec file to run>

NestJS预先配置了测试文件的正则表达式,以便在Jest的情况下搜索。

一个简单的例子是-

npm test -t app-util.spec.ts

(这是我的。spec文件名)

不需要给出完整的路径,因为Jest会根据NestJS默认可用的配置来搜索.spec文件:

"jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "ts"
    ],
    "rootDir": "src",
    "testRegex": ".spec.ts$",
    "transform": {
      "^.+\\.(t|j)s$": "ts-jest"
    },
    "coverageDirectory": "../coverage",
    "testEnvironment": "node"
  }
}

其他回答

对于NestJS用户,简单的替代方法是使用,

npm test -t <name of the spec file to run>

NestJS预先配置了测试文件的正则表达式,以便在Jest的情况下搜索。

一个简单的例子是-

npm test -t app-util.spec.ts

(这是我的。spec文件名)

不需要给出完整的路径,因为Jest会根据NestJS默认可用的配置来搜索.spec文件:

"jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "ts"
    ],
    "rootDir": "src",
    "testRegex": ".spec.ts$",
    "transform": {
      "^.+\\.(t|j)s$": "ts-jest"
    },
    "coverageDirectory": "../coverage",
    "testEnvironment": "node"
  }
}

只需使用此命令运行并检查特定文件的覆盖范围。

yarn run test Index.js -u --coverage --watchAll=false
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 TestFileName.spec.js

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