gpt4 book ai didi

java - 如何在 Maven 测试运行输出中获取并行执行标识符

转载 作者:行者123 更新时间:2023-12-02 08:33:43 26 4
gpt4 key购买 nike

当使用例如mvn test -Tn 运行 Maven 构建并行n-fold,如何让 Maven 在其日志输出中添加并行测试运行程序的标识符作为前缀?目前日志输出如下:

[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] -------------------------------------------------------

这使得很难判断哪个实例记录了什么

我希望它在日志中显示某种并行执行(线程、进程等)标识符,例如:

[1][INFO] -------------------------------------------------------
[1][INFO] T E S T S
[2][INFO] -------------------------------------------------------
[2][INFO] T E S T S
[2][INFO] -------------------------------------------------------
[1][INFO] -------------------------------------------------------

通过将 -Dorg.slf4j.simpleLogger.showThreadName=true 添加到 MAVEN_OPTS 环境变量(如 https://maven.apache.org/maven-logging.html 中所述),可以很容易地在日志输出中获取线程标识符但这似乎并不影响 Surefire 输出,例如:

[BuilderThread 1] [INFO] Surefire report directory: C:\redacted\path\to\module2\target\surefire-reports
[BuilderThread 0] [INFO] Nothing to compile - all classes are up to date
[BuilderThread 0] [INFO]
[BuilderThread 0] [INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ module1 ---
[BuilderThread 0] [INFO] Surefire report directory: C:\redacted\path\to\module1\target\surefire-reports

-------------------------------------------------------
T E S T S
-------------------------------------------------------

-------------------------------------------------------
T E S T S
-------------------------------------------------------

最佳答案

首先,通过使用-T ...,您不会并行运行集成测试,而是并行运行模块的构建。

此外,如果您使用 maven-surefire-plugin 您做错了什么,原因 maven-surefire-plugin用于运行单元测试,而 maven-failsafe-plugin用于集成测试。

要并行化测试本身,您应该检查 docs如何做到这一点。

除此之外,您应该使用mvn ... verfiy来确保pre-integration-testintegration-testpost-integration-test 阶段已运行。如果您调用mvn ..integration-test,则post-integration-test将不会被执行。

此外,根据定义,集成测试不能并行化,因为它们通常使用资源,以其他方式耦合。只有单元测试可以根据定义并行化,因为它们是独立的等。

关于java - 如何在 Maven 测试运行输出中获取并行执行标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com