java - 在 Maven 上按顺序强制进行集成参数化测试

标签 java maven testing parallel-processing maven-surefire-plugin

我有参数化集成测试,我使用 maven-surefire-plugin 运行。

他们使用 wiremock 服务器,为每个参数发送不同的值。

当我启动所有测试时,它们并不一致,OK 和 KO 从来都不是同一个测试。如果我只重新启动失败的,越来越多的通过,直到它们都 OK。

我怀疑是并发问题。

但是我能知道问题是出在 maven 、 surfire 、 intelliji 上还是参数化的运行器上吗?

我如何强制 maven 或 intelliji 或 Parametrized 逐一、逐一运行测试方法?

代码:

    @RunWith(Parameterized.class)
public class InfoIT  {

    @Parameterized.Parameters(name = "cache: {0}")
    public static List<Object[]> getParameters() {
        return asList(new Object[][]{
                {"infoA"},
                {"infoB"},
                {"infoC"},
                {"infoD"}
        });
    }

    @Parameterized.Parameter(0)
    public String cache;

    @Rule
    public WireMockRule siteServer = new WireMockRule(WIREMOCK_SITESERVER_CONFIGURATION);

    WebTarget infoClient = ClientBuilder.newClient().target(INFO_URL);

    @Test
    public void test_delete_is_ok_with_private_ip() {

        // when
        Response response = infoClient.path(format("/private/%s/test", cache)).request().delete();

        // then
        assertResponseEmpty(response);
    }

最佳答案

您可以使用 @NotThreadSafe 注释类 InfoIT(来自 net.jcip:jcip-annotations:1.0),这将使测试按顺序运行(来源:https://maven.apache.org/surefire/maven-failsafe-plugin/examples/fork-options-and-parallel-execution.html ).如果这就是您要问的。

关于java - 在 Maven 上按顺序强制进行集成参数化测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36432309/

相关文章:

selenium - Tableau 自动化测试

java - 验证 URI 是有效的 http URI

java - 带列的 hibernate 公式

java - 有没有办法用唯一的配置文件编译类并以其他方式排除它?

java - 热部署 EAR – (Netbeans 8.0.2/Wildfly 9.0.1/Maven 3.3.3)

testing - 如何断言 Ember 测试中的运行循环 DOM 更改

java - 拦截并重新抛出 Java 未处理的异常

Java Reactor StepVerifier.withVirtualTime 循环 : repeatedly check with "expectNoEvent()", "expectNext()"和 "thenAwait()"

java - 如何将库作为本地类引入,例如wiremock-jre8-standalone?

java - 运行 JUnit 套件测试时没有可运行的方法