當使用例如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'階段。我希望它不會運行「後整合測試」,但這與實際問題沒有關係。 至於集成測試是否可以並行化,那肯定取決於它們是如何寫入的。我希望不可並行化的集成測試被註釋掉。 –