首页 > 解决方案 > 执行空手道测试套件

问题描述

我正在为空手道的小型演示做准备,我有以下 git 项目https://github.com/TheRasanjana/karateTesting。我正在构建一个具有多个功能的测试套件。我有模拟products.feature,我正在用我的productRunner.java 调用它。由于我希望将来将其与 jenkins 集成,因此我希望将它们全部作为单个测试套件执行。

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

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

标签: karateweb-api-testing

解决方案


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

实际上如果你重命名productsRunnerProductsTest东西很可能会按照你期望的方式开始工作。如果您添加@ignoreproducts.feature(因此它们被排除在外AllTest并在您中使用@KarateOptions(features = "classpath:features/products/products.feature")ProductsTest那么您就全部设置好了。

空手道回归测试使用替代方法,其中ProductsRunner明确添加maven-surefirepom.xml.

            <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>   

查看示例 并阅读文档:https ://github.com/intuit/karate#command-line


推荐阅读