TeamCity允许成功构建尽管测试失败

时间:2013-04-03 20:32:16

标签: maven junit teamcity

我正在使用TeamCity和JUnit来构建和测试我正在编写的一些软件。因为我正在使用测试驱动的开发模式,所以我构建了单元测试,它将测试一个功能应该如何工作(最初它总是因为该功能尚未实现而失败),然后我开发了该功能,直到它通过所有功能它应该进行的测试。

在TeamCity中,我有两个构建步骤:第一个是编译我的项目的Maven构建步骤,第二个是仅运行单元测试的另一个Maven构建步骤。我想要做的是找到一种方法,通过第一步的成功或失败来确定“构建成功”,然后获得作为构建的单独部分通过或失败的所有测试的列表登录。这可能吗?

4 个答案:

答案 0 :(得分:3)

您可以通过进入构建的“设置”选项卡并修改“构建失败条件”选项来更改TeamCity中构建的失败方案。

enter image description here

您可以关闭“至少一个测试失败”作为失败条件。只要编译完所有内容,这将允许构建成功。

答案 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>

如果某些测试失败,这允许构建完成: Successful Build with Failed Tests