我在fix-order-test.js文件中有一个测试“works with nested children”。

运行下面的代码将运行文件中的所有测试。

jest fix-order-test

如何只运行一个测试?下面的方法无法工作,因为它搜索指定的正则表达式的文件。

jest 'works with nested children'

当前回答

Use:

npm run test -- test-name

只有当您的测试规范名称是唯一的时,这才会起作用。

上面的代码将引用一个名为test-name.component.spec.ts的文件

其他回答

开玩笑地说,这是唯一对我有用的东西:

is -- test/unit/name-of-test-file.test.ts

观察

is --watch -- test/unit/name-of-test-file.test.ts

对于Windows中的VSCode,我在我的启动中使用这些。json文件。注意使用${pathSeparator}来处理Win和Mac中的差异。在调试下拉菜单中选择一个并按F5运行。

 {
  "name": "Debug Selected Jest Test",
  "type": "node",
  "request": "launch",
  "runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/jest/bin/jest.js", "--runInBand"],
  "args": ["--", "-i", "${fileDirnameBasename}${pathSeparator}${fileBasename} ", "-t", "${selectedText}"],
  "console": "integratedTerminal",
  "internalConsoleOptions": "neverOpen",
  "port": 9229
},
{
  "name": "Debug Named Jest Test",
  "type": "node",
  "request": "launch",
  "runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/jest/bin/jest.js", "--runInBand"],
  "args": ["--", "-i", "${fileDirnameBasename}${pathSeparator}${fileBasename} ", "-t", "filename.test.js"],
  "console": "integratedTerminal",
  "internalConsoleOptions": "neverOpen",
  "port": 9229
},

运行命令行:

   npm run test-jest unit_test/file_name -- -t test_name

我Package.json

"test-jest": "jest --verbose=true --force-exit",
"test-jest:watch": "jest --watchAll",

在检查了Jest CLI文档之后,我发现这就是我们在特定文件中运行特定测试的方式。

jest --findRelatedTests path/to/fileA.js path/to/fileB.js -t "test name"

纱,

yarn test --findRelatedTests path/to/fileA.js path/to/fileB.js -t "test name"

npm,

npm test -- --findRelatedTests path/to/fileA.js path/to/fileB.js -t "test name"

如需参考,请检查Jest Cli选项

https://jestjs.io/docs/cli#--testnamepatternregex

你的测试是这个文件my。test。js

test("My Sum", () => {
  const sum = 3;
  expect(sum).toBe(3);
});

以测试名在CLI上运行

jest -t Sum

使用npm测试与regex匹配部分文件名的例子:my.test.js

npm test -t my