当前位置: 首页 > 知识库问答 >
问题:

在自定义测试任务定义中使用Gradle测试重试插件

陶博涉
2023-03-14

我有一个自定义任务定义来运行每个测试具有特殊设置的特定测试文件。我的任务定义如下:

task retryTest(type: Test) {
    description = 'Dummy Retry Test'
    group = 'verification'
    maxHeapSize = '2048m'
    include '**/*SpecificIntegrationTest.class'
}

现在,此设置中的一些测试是不可靠的,我尝试再次运行它们,如下所示:

plugins {
    id "org.gradle.test-retry" version "1.1.1"
}

task retryTest(type: Test) {
    description = 'Dummy Retry Test'
    group = 'verification'
    maxHeapSize = '2048m'
    include '**/*SpecificIntegrationTest.class'
    test {
        retry {
            maxRetries = 2
        }
    }
}

我编写了一个测试类,第一次总是失败,第二次总是成功:

public class RetryTest {

    private int execCount = 0;

    @Test
    public void throwException() {
        if (execCount == 0) {
            execCount++;
            throw new NotImplementedException();
        }
    }
}

不幸的是,测试只执行一次,整个测试套件失败。我可以使用中所述的自定义规则成功运行测试https://stackoverflow.com/a/55178053/6059889

有没有办法将测试重试插件与自定义任务定义一起使用?

共有2个答案

卫开济
2023-03-14
task retryTest(type: Test) {
  description = 'Dummy Retry Test'
  group = 'verification'
  maxHeapSize = '2048m'
  include '**/*SpecificIntegrationTest.class'
  reports {
    junitXml {
      mergeReruns = true
    }
  }

  retry {
    maxRetries = 3
  }
}
谭嘉歆
2023-03-14

您的任务配置错误。应该是:

task retryTest(type: Test) {
    description = 'Dummy Retry Test'
    group = 'verification'
    maxHeapSize = '2048m'
    include '**/*SpecificIntegrationTest.class'
    retry {
        maxRetries = 2
    }
}
 类似资料:
  • 我使用的是Spring Framework4.1.6版本,带有Spring web services,不带Spring Boot。为了学习这个框架,我正在编写一个REST API,并进行测试,以确保从命中一个endpoint收到的JSON响应是正确的。具体地说,我正在尝试调整的以使用“带下划线的小写”命名策略。 我正在使用Spring的博客中详细介绍的方法创建一个新的并将其添加到转换器列表中。具体

  • 我试图测试使用自定义重试策略的重试模板。为了做到这一点,我使用以下示例: https://github.com/spring-projects/spring-retry/blob/master/src/test/java/org/springframework/retry/support/retrytemplatetests.java#l57 基本上,我的目标是在得到一些特定的http错误状态(例

  • 问题内容: 我的问题: 我可以成功测试CRUD服务的运行情况。我在@Before [setUp()]上执行插入操作,并在@After [tearDown()]上进行相同数据删除操作,但今后,我需要支持事务处理,而不是编写用于插入和删除的代码。 我可以成功获取实体的单个记录,但是当我触发搜索查询或尝试获取多个实体时,我得到: com.liferay.portal.kernel.bean.BeanLo

  • 问题内容: 我正在使用带有Spring Web服务且没有Spring Boot的Spring Framework版本4.1.6。要学习该框架,我正在编写REST API并进行测试以确保从命中端点收到的JSON响应正确。具体来说,我想调整的‘用下划线小写’命名策略使用。 我正在使用Spring博客上详细介绍的方法创建一个新方法,并将其添加到转换器列表中。如下所示: 然后,运行以下测试(使用JUnit

  • 我试图用RobolectRic2.1.1运行单元测试,但我无法让它膨胀自定义布局(例如,ViewPagerIndicator类)。假设这是我的布局: 其结果是: 我的最后一招是尝试使用影子类: 并使用。这再次导致 你们能给我指出正确的方向吗?我没主意了。多谢了。

  • 我正在尝试创建一个自定义任务/插件(两者都拒绝工作),用于我的gradle构建脚本。 我正在使用groovy插件,希望在单独的文件中声明任务/插件,而不是在我的构建中。格拉德尔。 我的项目树如下所示: 我试图做的是在中创建我的任务/插件类,然后在。 让我举一个小例子。 TestTask。groovy: build.gradle 当我尝试使用我的gradle.build(清洁,构建等)做任何事情时,