在Jest中运行特定测试套件的单个测试

pkln4tw6  于 2023-05-11  发布在  Jest
关注(0)|答案(7)|浏览(292)

我有一个名为“test-file-1”的文件,其中我有一些具有唯一名称的描述(测试套件),并且在它们内部我有一些测试,这些测试可能在测试套件中具有类似的名称。
要运行单个测试套件或测试i,请键入下面的命令。

npm test -- -t "Test Suite or Test"

我试图弄清楚如何运行特定测试套件的单个测试。

xesrikrc

xesrikrc1#

给予要测试的文件的路径:
npm test path/of/your/testfile.js -t "test name"
将仅运行此特定文件的名为“test name”的测试(或组)。

rdlzhqv9

rdlzhqv92#

在尝试了很多不同的东西后,我发现它比我想象的要简单。
您只需将测试放在测试套件之后的同一字符串中:

npm test -- -t "<Test Suite> <Test>"
jchrr9hc

jchrr9hc3#

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 '0000000'

m2xkgtsf

m2xkgtsf4#

通过"testMatch":["**/path/testSuite/*.js"]指向jest配置文件中的测试套件
现在通过jest testName给出唯一的testname来执行
在这里,你必须每次更新testMatch,这是你的testSuite

iovurdzv

iovurdzv5#

如果您使用的是jest配置文件,则可以使用testNamePattern键进行配置。因此您的配置文件可能类似于
jest-e2e.json

{
  "moduleFileExtensions": ["js", "json", "ts"],
  "rootDir": ".",
  "testEnvironment": "node",
  "testRegex": ".spec.ts$",
  "testNamePattern": "login",
  "transform": {
    "^.+\\.(t|j)s$": "ts-jest"
  },
  "bail": true,
  "verbose": true,
  "testTimeout": 30000
}

这将只运行在其中一个测试模式中具有“login”的测试
参考:https://jestjs.io/docs/cli#--testnamepatternregex

fiei3ece

fiei3ece6#

对我来说,它只适用于:

npm run test -- tests/01_login.js --testcase "Should login into Dashboard"

npm run <script> -- <test suite path> --testcase "<test case>"

我的脚本包.json:

"test": "env-cmd -f ./.env nightwatch --retries 2 --env selenium.chrome",

at nightwatch版本1.3.4

1bqhqjot

1bqhqjot7#

在最新版本Jest中,您可以使用it.only()describe.only()等,在这种情况下,它将只执行单个测试,而不必传递文件或筛选参数

相关问题