Karate 执行空手道测试套件

Karate 执行空手道测试套件,karate,web-api-testing,Karate,Web Api Testing,我正在准备一个小型的空手道演示,我有下面的git项目。我正在构建一个具有几个特性的测试套件。我使用productRunner.java调用了mock-products.feature。由于我希望将来将其与jenkins集成,所以我希望将它们作为单个测试套件来执行 当我分别运行每个runner类时,测试会成功运行。在特性之外,我有一个“AllTest.java”运行器类,可以使用命令“mvn test-Dtest=AllTest”将它们作为一个套件运行。但在这种情况下,它不会调用mock。我是否也

我正在准备一个小型的空手道演示,我有下面的git项目。我正在构建一个具有几个特性的测试套件。我使用productRunner.java调用了mock-products.feature。由于我希望将来将其与jenkins集成,所以我希望将它们作为单个测试套件来执行

当我分别运行每个runner类时,测试会成功运行。在特性之外,我有一个“AllTest.java”运行器类,可以使用命令“mvn test-Dtest=AllTest”将它们作为一个套件运行。但在这种情况下,它不会调用mock。我是否也必须调用AllTests.java中的mock


作为套件运行所有功能的正确方法是什么?

在CI中运行模拟的最佳方法是a)使用JUnit,b)在测试执行中包含JUnit类。因此,您所需要做的就是
mvn测试
,您可以停止引用任何特定的测试运行程序类

实际上,如果您将
productsRunner
重命名为
ProductsTest
,事情很可能会按照您预期的方式开始工作。如果您将一个
@ignore
添加到
products.feature
(因此它们被排除在
AllTest
之外,并在
ProductsTest
中使用
@KarateOptions(features=“classpath:features/products/products.feature”)
,则所有设置完毕

空手道回归测试使用另一种方法,
ProductsRunner
被明确添加到
pom.xml
maven-surefire
部分

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven.surefire.version}</version>
                <configuration>
                    <includes>
                        <include>demo/DemoTestParallel.java</include>
                        <include>mock/contract/*Test.java</include>
                        <include>mock/micro/*Runner.java</include>
                        <include>mock/proxy/*Runner.java</include>
                        <include>ssl/*Test.java</include>
                    </includes>
                </configuration>
            </plugin>   

org.apache.maven.plugins

阅读文档:

非常感谢您的快速响应。如果我没记错的话,您告诉我的是从AllTest.java中排除products.feature并运行AllTest也会运行ProductsTest?@NironRasanjanaPerera我意识到我没有明确说明您只需要执行
mvn test
,我想这就是原因你不见了。编辑了我的答案。谢谢你的回复。我有点困惑。不管怎样,它按照你说的那样工作。