2013-03-04 91 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

相关问题