定义jenkins上集成测试的执行时间

时间:2015-09-04 13:08:46

标签: maven jenkins integration-testing

我在jenkins上进行了一些集成测试。总的来说,他们需要大约30分钟才能完成。这需要太长时间。因此,我们试图找到一种方法,让一个测试类(占用大部分时间)在另一个时间执行。我们怎样才能做到这一点?

目前我们以这种方式包括测试:

<build>
    <testResources>
        <testResource>
            <directory>config</directory>
            <includes>
                <include>**/*.properties</include>
            </includes>
            <filtering>true</filtering>
        </testResource>
    </testResources>

    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skip>${skip.integration.test}</skip>
                <includes>
                    <include>**/*Test.class</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

我听到了类似这样的激活配置文件:

<profiles>
  <profile>
    <activation>
      <jdk>1.4</jdk>
    </activation>
    ...
  </profile>
</profiles>

您是否知道如何执行所有测试但每天只有一个测试类,并且在一周的某一天执行所有测试?

1 个答案:

答案 0 :(得分:0)

我几天都不会跳过集成测试。因为,你的开发人员越早得到反馈,他们的一个变化导致测试失败越好。由于最近的更改更容易被记住,因此更快地应用更正。否则,依赖于罪魁祸首变化的所有其他开发人员也会针对损坏的代码发展,或者甚至被阻止更长时间。

您的意思是当您的开发人员在本地测试他们的更改时,这些集成测试也会运行吗?我不建议这样做,我同意“大约30分钟”肯定太长了。

请参阅Integration Testing With Maven了解如何单独运行单元测试和集成测试。 (是的,它是通过Maven配置文件实现的。请参阅Maven / Introduction to build profiles。)

我会将那里提到的dev个人资料用作默认个人资料,并使用像Jenkins这样的CI系统上的integration-test个人资料。