Filtering tests by name
--test-name-pattern 命令行选项可用于仅运行名称与提供的模式匹配的测试。
测试名称模式被解释为 JavaScript 正则表达式。
可以多次指定 --test-name-pattern 选项以运行嵌套测试。
对于执行的每个测试,也会运行任何相应的测试挂钩,例如 beforeEach()。
给定以下测试文件,使用 --test-name-pattern="test [1-3]" 选项启动 Node.js 将导致测试运行程序执行 test 1、test 2 和 test 3。
如果 test 1 不匹配测试名称模式,那么它的子测试将不会执行,尽管匹配模式。
同一组测试也可以通过多次传递 --test-name-pattern 来执行(例如 --test-name-pattern="test 1"、--test-name-pattern="test 2" 等)。
test('test 1', async (t) => {
await t.test('test 2');
await t.test('test 3');
});
test('Test 4', async (t) => {
await t.test('Test 5');
await t.test('test 6');
});也可以使用正则表达式文字指定测试名称模式。
这允许使用正则表达式标志。
在前面的示例中,以 --test-name-pattern="/test [4-5]/i" 开头的 Node.js 将匹配 Test 4 和 Test 5,因为该模式不区分大小写。
测试名称模式不会更改测试运行程序执行的文件集。
The --test-name-pattern command-line option can be used to only run tests
whose name matches the provided pattern. Test name patterns are interpreted as
JavaScript regular expressions. The --test-name-pattern option can be
specified multiple times in order to run nested tests. For each test that is
executed, any corresponding test hooks, such as beforeEach(), are also
run.
Given the following test file, starting Node.js with the
--test-name-pattern="test [1-3]" option would cause the test runner to execute
test 1, test 2, and test 3. If test 1 did not match the test name
pattern, then its subtests would not execute, despite matching the pattern. The
same set of tests could also be executed by passing --test-name-pattern
multiple times (e.g. --test-name-pattern="test 1",
--test-name-pattern="test 2", etc.).
test('test 1', async (t) => {
await t.test('test 2');
await t.test('test 3');
});
test('Test 4', async (t) => {
await t.test('Test 5');
await t.test('test 6');
});Test name patterns can also be specified using regular expression literals. This
allows regular expression flags to be used. In the previous example, starting
Node.js with --test-name-pattern="/test [4-5]/i" would match Test 4 and
Test 5 because the pattern is case-insensitive.
Test name patterns do not change the set of files that the test runner executes.