默认情况下,执行gradle test时,输出如下所示:
gradle test
ExampleSpec > get all examples PASSED
如果我没记错的话,在Gradle的早期,类会将包名放在前面。因此,你会得到一个更类似的结果:
com.company.ExampleSpec > get all examples PASSED
有没有办法更改Gradle记录已完成测试的方式,以显示每个测试的软件包名称?
tktrz96b1#
我能找到的最接近的是对gradle Test任务的以下更改:
Test
String ANSI_RESET = "\u001B[0m" String ANSI_RED = "\u001B[31m" String ANSI_GREEN = "\u001B[32m" String ANSI_YELLOW = "\u001B[33m" test { useJUnitPlatform() testLogging { events "failed" showExceptions true exceptionFormat "full" } afterTest { TestDescriptor descriptor, TestResult result -> if(result.failedTestCount > 0) { println "${descriptor.className} > ${descriptor.name} ${ANSI_RED}FAILED${ANSI_RESET}" } else if(result.skippedTestCount > 0) { println "${descriptor.className} > ${descriptor.name} ${ANSI_YELLOW}SKIPPED${ANSI_RESET}" } else { println "${descriptor.className} > ${descriptor.name} ${ANSI_GREEN}PASSED${ANSI_RESET}" } } }
在测试失败的情况下,它会导致一点冗余,但这样它仍然会发出堆栈跟踪来帮助开发人员。
a14dhokn2#
我已经用https://stackoverflow.com/a/76946372/2145769回答了您可以通过在TestLogging中设置displayGranularity并启用相关事件的日志记录来控制细节。要记录的事件的显示粒度。例如,如果设置为0,则方法级事件将显示为“TestRun> TestWorker x > org.SomeClass> org.someMethod”。如果设置为2,则同一事件将显示为“org.someClass > org.someMethod”。
displayGranularity
tasks.test { testLogging { events ("passed", "skipped", "failed") displayGranularity = 1 } }
2条答案
按热度按时间tktrz96b1#
我能找到的最接近的是对gradle
Test
任务的以下更改:在测试失败的情况下,它会导致一点冗余,但这样它仍然会发出堆栈跟踪来帮助开发人员。
a14dhokn2#
我已经用https://stackoverflow.com/a/76946372/2145769回答了
您可以通过在TestLogging中设置
displayGranularity
并启用相关事件的日志记录来控制细节。要记录的事件的显示粒度。例如,如果设置为0,则方法级事件将显示为“TestRun> TestWorker x > org.SomeClass> org.someMethod”。如果设置为2,则同一事件将显示为“org.someClass > org.someMethod”。