使用空手道V1.4.1...
我有一个包含多个功能文件的项目,所有这些都是数据驱动的(场景大纲)。
驱动所有这些的是一个 Java 文件,该文件跨 4 个线程运行所有这些,如下所示:
class TestSuiteTest {
@Test
public void testSuiteTest() {
Results results = Runner.path()
.tags()
.outputJunitXml(true)
.outputCucumberJson(true)
.relativeTo(getClass())
.parallel(4);
assertEquals(0, results.getFailCount(), results.getErrorMessages());
}
}
如果我通过 Maven 命令行运行所有测试,例如:
mvn clean test -Dtest=TestSuiteTest
一切都按预期进行,测试跨 4 个线程运行。但是,如果我使用标签来触发单个测试(场景大纲,由包含 10 行的 .csv 文件驱动),则通过如下命令:
mvn clean test -Dtest=TestSuiteTest -Dkarate.options='--tags @name=one'
它仅在单个线程上运行。
我什至尝试删除所有其他测试,这样我只有一个功能文件,并且结果相同 - 不指定标签使其运行多线程,指定标签使其运行单线程。
只是想知道是否有人可以分享一些关于此的信息。我希望它在所有场景中都使用全部 4 个线程。
下面是相关测试的结构,其中 test_data 在配置中设置:
Feature: XXX
@setup
Scenario:
@name=one
Scenario Outline: XXX
* def caseDescription = 'XXX'
Examples:
| karate.setup().test_data |
谢谢,
保罗
您可能遇到了这个问题:https://github.com/karatelabs/karate/issues/2444
线程中有一个解决方法,或者你可以尝试 1.5.0.RC3