如何阅读Travis CI的测试结果报告?

Car*_*ren 27 gradle travis-ci

对于我在Travis上的构建,我希望能够在测试失败时查看测试结果以查看那些失败测试的堆栈跟踪.目前,这些报告本地存储在运行测试的计算机上,因此我无法访问报告所在的本地文件.

我也不想通过Amazon S3归档这些文件,因为这看起来太麻烦了.

类似于:如何从Travis-CI构建获得万无一失的报告?看起来它可以工作,但似乎也很复杂.

基本上,我希望能够从Travis读取本地测试结果文件而无需通过S3.

Ren*_*hke 13

在控制台上获得有关失败测试的有用输出的最简单方法是使用gradle测试日志记录.

test {
    testLogging {
        events "failed"
        exceptionFormat "short"
    }
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息和更多选项,请参阅gradle用户指南中的相应章节:http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.logging.TestLoggingContainer.html

  • 我认为这是最简单的解决方案,它不会像 --info 或 --debug 那样污染构建日志。我最终转而使用“完整”异常格式,因为“短”格式甚至不包含异常消息。 (2认同)

Ywa*_*ain 8

为了扩展Rene Groeschke的答案,我发现以下配置对Travis来说是一个很好的折衷方案:

test {
    testLogging {
        events "passed", "skipped", "failed"
        exceptionFormat "full"
    }
}
Run Code Online (Sandbox Code Playgroud)

这将产生如下输出:

com.package.SomeClassTest > testPass PASSED

com.package.SomeClassTest > testSkip SKIPPED

com.package.SomeClassTest > testFail FAILED
    java.lang.AssertionError: expected:<false> but was:<true>
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.failNotEquals(Assert.java:834)
        at org.junit.Assert.assertEquals(Assert.java:118)
        at org.junit.Assert.assertEquals(Assert.java:144)
        at com.package.SomeClassTest.testFail(SomeClassTest.java:42)

3 tests completed, 1 failed, 1 skipped
Run Code Online (Sandbox Code Playgroud)

测试报告仍将生成,因此您可以在本地运行测试时查阅它.


Bar*_*ers 2

尝试添加--info到您的命令中:

./gradlew test --info
Run Code Online (Sandbox Code Playgroud)

如果您想要更多,请尝试:

./gradlew test --debug
Run Code Online (Sandbox Code Playgroud)