我正在使用TeamCity和JUnit来构建和测试我正在编写的一些软件。因为我正在使用测试驱动的开发模式,所以我构建了单元测试,它将测试一个功能应该如何工作(最初它总是因为该功能尚未实现而失败),然后我开发了该功能,直到它通过所有功能它应该进行的测试。
在TeamCity中,我有两个构建步骤:第一个是编译我的项目的Maven构建步骤,第二个是仅运行单元测试的另一个Maven构建步骤。我想要做的是找到一种方法,通过第一步的成功或失败来确定“构建成功”,然后获得作为构建的单独部分通过或失败的所有测试的列表登录。这可能吗?
答案 0 :(得分:3)
您可以通过进入构建的“设置”选项卡并修改“构建失败条件”选项来更改TeamCity中构建的失败方案。
您可以关闭“至少一个测试失败”作为失败条件。只要编译完所有内容,这将允许构建成功。
答案 1 :(得分:2)
对于TeamCity,将此行-Dmaven.test.failure.ignore=true
添加到"其他Maven命令行参数:"在Build Step中工作
答案 2 :(得分:0)
因为我使用的是测试驱动的开发模式,所以我构建了Unit 测试将测试一个功能应该如何工作,然后我开发 功能,直到它通过它应该的所有测试。
很抱歉,这不是测试驱动的开发。在TDD中,您总是只编写一个失败的测试,然后您实现足够的代码来满足测试期望,然后重构。当所有测试(新的和旧的测试)通过时,您可以将您的更改与其他测试集成。
可以按照您想要的方式设置TeamCity,但它没有任何意义。
答案 3 :(得分:0)
好的,事实证明,我想要做的事情需要在maven pom中进行配置,如下所示:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
如果某些测试失败,这允许构建完成: