使用标签时场景大纲未在多个线程上运行

问题描述 投票:0回答:1

使用空手道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 |

谢谢,

保罗

java multithreading maven karate scenarios
1个回答
0
投票

您可能遇到了这个问题:https://github.com/karatelabs/karate/issues/2444

线程中有一个解决方法,或者你可以尝试 1.5.0.RC3

© www.soinside.com 2019 - 2024. All rights reserved.