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

Gradle 如何阅读Travis CI的测试结果报告?,gradle,travis-ci,Gradle,Travis Ci,对于我在Travis上的构建,我希望能够在有失败测试时读取测试结果,以查看那些失败测试的堆栈跟踪。目前,这些报告存储在本地运行测试的机器上,因此我无法访问报告所在的本地文件 我也不想通过AmazonS3归档这些文件,因为这看起来太麻烦了 类似这样的东西:似乎它可以工作,但也似乎很复杂 基本上,我希望能够在不经过S3的情况下从Travis读取本地测试结果文件。尝试将--info添加到命令中: ./gradlew test --info 如果您想要更多,请尝试: ./gradlew test --

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

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

类似这样的东西:似乎它可以工作,但也似乎很复杂

基本上,我希望能够在不经过S3的情况下从Travis读取本地测试结果文件。

尝试将
--info
添加到命令中:

./gradlew test --info
如果您想要更多,请尝试:

./gradlew test --debug

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

test {
    testLogging {
        events "failed"
        exceptionFormat "short"
    }
}

有关详细信息和更多选项,请参阅gradle用户指南中的相应章节:

要进一步了解Rene Groeschke的答案,我发现以下配置对Travis来说是一个很好的折衷方案:

test {
    testLogging {
        events "passed", "skipped", "failed"
        exceptionFormat "full"
    }
}
这将产生如下输出:

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
com.package.SomeClassTest>testPass已通过
com.package.SomeClassTest>testSkip已跳过
com.package.SomeClassTest>testFail失败
java.lang.AssertionError:应为:但为:
位于org.junit.Assert.fail(Assert.java:88)
位于org.junit.Assert.failNotEquals(Assert.java:834)
位于org.junit.Assert.assertEquals(Assert.java:118)
位于org.junit.Assert.assertEquals(Assert.java:144)
位于com.package.SomeClassTest.testFail(SomeClassTest.java:42)
完成3项测试,1项失败,1项跳过

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

您不能以运行测试时输出更多信息的方式运行构建工具吗?例如,./gradlew test--info而不仅仅是。/gradlew test?我想这可能是一个简单的解决方案,但是对于完整的报告,可能会有更多关于测试失败的信息,我认为这有时会更有帮助。我只是想看看
--info
--debug
是否产生足够的信息。如果没有,你可以微调你的问题。看起来尝试这些选项仍然无法输出为什么travis中的测试失败,不管是什么原因,嗯,这与我有关。我看到断言消息(即
得到X,预期得到Y
),我认为这是最简单的解决方案,不会像--info或--debug那样污染构建日志。我最终改用exceptionFormat“full”,因为“short”格式甚至不包含异常消息。