2013-03-04 90 views
8

我的公司最近已經切換到maven,並且過渡非常順利,但有一件事情讓我很煩惱。 更早之前,在pre-maven時代,你可以看到哪些測試是當前類正在運行(如果你在一個類中有40個單元測試,並且第二個測試失敗,你會看到它)。 現在看起來就是這樣的:它顯示測試類的名稱,就是這樣。你必須等到班上完成所有的測試才能看到結果(你可以停止測試,它會顯示你停下來的進度,但在實際阻止之前你什麼都看不到)。這在一些集成測試中非常煩人和耗時。Maven,顯示當前正在運行的單元測試

如果有人知道這個解決方案,我將不勝感激。提前致謝。

回答

5

您可以配置將在控制檯上打印當前運行測試的偵聽程序。請參閱章節的junit maven-surefire-plugin documentationUsing custom listeners and reporterstestng maven-surefire-plugin documentation

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.19.1</version> 
    <configuration> 
     <properties> 
     <property> 
      <name>listener</name> 
      <value>com.mycompany.MyResultListener,com.mycompany.MyResultListener2</value> 
     </property> 
     </properties> 
    </configuration> 
    </plugin> 
+1

@simleo。我希望看到該鏈接發生了變化,以反映它特別指向JUnit頁面。還有另外一個頁面,它提供了一個用於向[Maven Surefire TestNG設置]添加監聽器的信息(http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html) – 2017-05-19 00:29:50

+0

@JohnChesshir我添加了鏈接。 – SpaceTrucker 2017-05-19 08:22:29

1

如果您使用JUnit,你could use a @Rule for this

如果您只希望它適用於Maven何時運行測試,請使用System屬性來啓用/禁用輸出。

+0

這是一個關於使用Junit @ Rule's打印出當前測試名稱的線程:http://stackoverflow.com/q/473401/32453儘管如果您想要將其添加到某個測試公共基類,一個單元測試輸出它[?] – rogerdpack 2016-06-15 18:03:02

相關問題