对于我在Travis上的构建,当有测试失败时,我希望能够读取测试结果以查看这些失败测试的堆栈跟踪。目前,这些报告存储在运行测试的机器上的本地文件中,因此我无法访问报告所在的本地文件。
我也不想通过Amazon S3归档这些文件,因为那似乎太麻烦了。
像如何从Travis-CI构建获取surefire报告?这样的方法似乎可以解决问题,但也似乎很复杂。
基本上,我想能够在没有经过S3的情况下从Travis读取本地测试结果文件。
对于我在Travis上的构建,当有测试失败时,我希望能够读取测试结果以查看这些失败测试的堆栈跟踪。目前,这些报告存储在运行测试的机器上的本地文件中,因此我无法访问报告所在的本地文件。
我也不想通过Amazon S3归档这些文件,因为那似乎太麻烦了。
像如何从Travis-CI构建获取surefire报告?这样的方法似乎可以解决问题,但也似乎很复杂。
基本上,我想能够在没有经过S3的情况下从Travis读取本地测试结果文件。
使用Gradle测试日志是获取有关测试失败的有用输出并在控制台上显示的最简单方法。
test {
testLogging {
events "failed"
exceptionFormat "short"
}
}
请查看Gradle用户指南中相应章节获取更多选项和详细信息:http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.logging.TestLoggingContainer.html
补充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
测试报告仍将生成,因此您可以在本地运行测试时进行咨询。
--info
:./gradlew test --info
如果您需要更多内容,请尝试:
./gradlew test --debug
得到 X,期望 Y
)。 - Bart Kiers
--info
或--debug
是否能提供足够的信息。如果不行,您可以进一步调整问题。 - Bart Kiers