我正在使用 TestNG(带有 gradle)进行并行测试执行。
用于执行我的测试的 Gradle 任务:-
task executeTests(type: Test) {
useTestNG{
options ->
options.parallel = 'classes'
options.threadCount = 2
}
}
我有一些登录测试。在 Gradle 报告中,当我们并行执行测试时,一个测试类的日志会打印在其他测试类的标准输出部分中。
为了调试,我创建了 3 个类,每个类一个测试,并打印 Thread.currentThread().getId() 和日志。在 Gradle 报告中,最后执行的测试类的标准输出部分具有不同线程 ID 的日志(这些来自不同的类)。
我做错了什么吗?如何正确记录日志(我应该能够在其标准输出部分看到测试类的完整日志记录)。提前致谢。
最佳答案
Gradle 的测试报告是在 Gradle 自己的并行执行的情况下实现的,它始终是每个 JVM 单线程(但可能是多 JVM)。除非您需要 TestNG 的测试之间依赖关系的概念,否则最好使用 Gradle 的并行执行(例如 executeTests.maxParallelForks = 2
),它不存在此问题。另外,您可以在 http://forums.gradle.org 提出原始问题的问题。 .
关于java - 来自一个测试类的日志显示在 Gradle 测试报告中另一类的标准输出部分中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25002338/