我正在執行從maven pom.xml執行testng.xml,其中threadcount = 5在testng.xml中指定。爲了調試目的,我需要在日誌中打印threadID,但無法做到這一點。下面是配置的細節: -線程ID不會打印在log4j日誌中
Pom.xml
-------
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
Testng.xml
----------
<suite name="Functionality Test" parallel="tests"
verbose="5" thread-count="5" configfailurepolicy="continue" >
<test name="Industry Brief" >
<classes>
<class name="com.firstrain.XX" />
</classes>
</test>
<test name="FR Labs">
<classes>
<class name="com.firstrain.YY" />
</classes>
</test>
</suite>
Log4j.properties pattern Layout
-------------------------------
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
Current Output
-------------
INFO [TestNG] (XX.java:27) - testme XX
INFO [TestNG] (YY.java:25) - testme YY
INFO [TestNG] (YY.java:26) - 1234
INFO [TestNG] (XX.java:27) - testme XX again
INFO [TestNG] (YY.java:47) - testme YY again
Expected Output
-------------
INFO [pool-1-thread-1] (XX.java:27) - testme XX
INFO [pool-1-thread-2] (YY.java:25) - testme YY
INFO [pool-1-thread-2] (YY.java:26) - 1234
INFO [pool-1-thread-1] (XX.java:27) - testme XX again
INFO [pool-1-thread-2] (YY.java:47) - testme YY again
Can你發佈你的測試代碼?該輸出看起來像您的測試代碼可能在單個線程中執行。我假設你的測試代碼必須做一個Thread.setName()? – 2014-11-01 21:06:59
Kharyam, Thx的答覆。我沒有在我的代碼中的任何地方使用Thread.setName()...當我運行我的代碼時,testng正在運行5個並行線程來提供測試。 – 2014-11-02 04:00:42
我甚至面臨同樣的問題...它總是顯示TestNG,你永遠無法確定哪個線程正在運行,這可能是因爲TestNg內部設置每個線程的名稱爲'TestNG' – 2014-11-02 11:00:04