我在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>
您是否知道如何执行所有测试但每天只有一个测试类,并且在一周的某一天执行所有测试?
答案 0 :(得分:0)
我几天都不会跳过集成测试。因为,你的开发人员越早得到反馈,他们的一个变化导致测试失败越好。由于最近的更改更容易被记住,因此更快地应用更正。否则,依赖于罪魁祸首变化的所有其他开发人员也会针对损坏的代码发展,或者甚至被阻止更长时间。
您的意思是当您的开发人员在本地测试他们的更改时,这些集成测试也会运行吗?我不建议这样做,我同意“大约30分钟”肯定太长了。
请参阅Integration Testing With Maven了解如何单独运行单元测试和集成测试。 (是的,它是通过Maven配置文件实现的。请参阅Maven / Introduction to build profiles。)
我会将那里提到的dev
个人资料用作默认个人资料,并使用像Jenkins这样的CI系统上的integration-test
个人资料。