使用空手道V1.4.1...

我有一个包含多个特性文件的项目,所有这些文件都是数据驱动的(Scenario Outline).

驱动这一切的是一个跨4个线程运行所有这些的Java文件,如下所示:

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个线程运行.但是,如果我使用标签触发单个测试(Scenario Outline,由10行的. csv文件驱动),请通过如下命令:

mvn clean test -Dtest=TestSuiteTest -Dkarate.options='--tags @name=one'

它只在一个线程上运行.

我甚至try 删除所有其他测试,这样我就只有一个特性文件,结果是一样的—不指定标记会使它运行多线程,指定标记会运行单线程.

只是想知道有没有人能分享一下这方面的信息.我希望它能在所有场景中使用所有4个线程.

下面是所讨论的测试的 struct ,其中test_data设置在config中:

Feature: XXX

@setup
Scenario:

@name=one
Scenario Outline: XXX
    * def caseDescription = 'XXX'

    Examples:
    | karate.setup().test_data |

谢谢,

保罗

推荐答案

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

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

Java相关问答推荐

在FML中删除关键帧动画

当一个链表中间有一个循环时,它的松散部分会发生什么?

Java Stream,需要更新列表对象列表

多个Java线程和TreeMap.put()的非预期行为

是否在允许数组元素为空时阻止 idea 为空性警告?

为什么JAVA&S清洁器使用链表而不是并发HashSet?

如何调整工作时间日历中的时间

在AVL树的Remove方法中使用NoSuchElementException时遇到问题

Java Mooc.fi Part 12_01.Hideout -返回和删除方法

在Java 15应用程序中运行Java脚本和Python代码

Java.lang.invke.LambdaConversionException:实例方法InvokeVirtual的参数数量不正确

无法使用Freemarker从XML中读取重复的标记值

如果List是一个抽象接口,那么Collectors.toList()如何处理流呢?

如何使这两种方法合二为一?

如何在运行docker的应用程序中获取指定的配置文件

组合连接以从两个表返回数据

让标签占用JavaFX中HBox的所有可用空间

java21预览未命名的符号用于try-with-resources

在JPanel上使用GridBagLayout并将JButton放在里面时出现问题

Xml Reader 将 BMP 外部的字符解析为代理项对,这会导致无效的 xml