java - 来自一个测试类的日志显示在 Gradle 测试报告中另一类的标准输出部分中

标签 java gradle testng

我正在使用 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/

相关文章:

java - JMS ActiveMQ 队列已经存在

gradle - Android Gradle插件与最新Gradle版本的兼容性

gradle - Gradle zip任务既不会失败也不起作用

gradle - 添加优雅按钮依赖后出现错误

java - TestNG - 如果满足条件,如何从 BeforeSuite 注释强制结束整个测试套件

java - 在每个 @Test 范围之间请求新的单例 bean "WebDriver"

Java,根据选择结束小程序

java - Kotlin 中高阶函数和 SAM 转换的奇怪行为

java - 从Java中的表创建嵌套数据结构的算法

java - 如何在多个浏览器上一个接一个地运行 Selenium 测试