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

时间:2019-07-15 18:18:09

标签: javascript node.js npm automated-tests jestjs

我有一个名为“ test-file-1”的文件,其中有一些描述(测试套件)的名称都是唯一的,并且在其中有一些测试,这些测试在各个测试套件中可能具有相似的名称。

要运行单个测试套件或测试,请在下面键入以下命令。

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

我正在尝试弄清楚如何对特定测试套件运行单个测试。

6 个答案:

答案 0 :(得分:0)

给出要测试的文件的路径:

npm test path/of/your/testfile.js -t "test name"

将仅运行此特定文件名为“测试名称”的测试(或组)。

答案 1 :(得分:0)

通过"testMatch":["**/path/testSuite/*.js"]指向jest配置文件中的测试套件

现在通过jest testName赋予唯一的测试名称来执行

在这里,您必须每次都更新testMatch,这就是您的testSuite

答案 2 :(得分:0)

尝试了许多不同的事情后,我发现它比我想象的要简单。

您只需要将测试放在测试套件之后,并使用相同的字符串即可:

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

答案 3 :(得分:0)

对我来说,它仅适用于:

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

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

package.json中的我的脚本:

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

在守夜人版本1.3.4

答案 4 :(得分:0)

import LoggerService from '../LoggerService ';

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

运行以下命令 npm测试-tests / LoggerService.test.ts -t'00000000'

答案 5 :(得分:0)

如果您使用的是 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
}


这只会运行在测试模式之一中具有“登录”功能的测试

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