当使用例如mvn test -Tn
运行Maven构建并行化n -fold,我怎么能让Maven在其日志输出前加上并行测试运行器的标识符?目前日志输出看起来像:如何在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
envionment变量(如https://maven.apache.org/maven-logging.html描述),以获得在日志输出线程标识符,但是这似乎并没有影响万无一失的输出,例如:
[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确实在更高层次上将事物并行化。我会用这些术语来重述这个问题。 其他笔记似乎是准确的,除了'mvn integration-test'肯定会运行'pre-integration-test'阶段。我希望它不会运行“后整合测试”,但这与实际问题没有关系。 至于集成测试是否可以并行化,那肯定取决于它们是如何写入的。我希望不可并行化的集成测试被注释掉。 –