Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven, displaying unit test currently running

My company has recently switched to maven, and the transition was very smooth, but there is one this that annoys me. So earlier, in pre-maven era you could see which test is current class is being run (f.e if you had 40 unit tests in a class, and 2nd test failed you would see it). Now it looks this way: it displays the name of tested class and thats it. You have to wait till all the tests are done in the class to actually see the results (you can stop the test and it will show the progress to the point you stopped, but you don't see anything before actually stopping them). This is really annoying and time consuming in some integration tests.

If anyone knows a solution for this I'd be grateful. Thanks in advance.

like image 238
Raidmaster Avatar asked Mar 04 '13 14:03

Raidmaster


2 Answers

You can configure a listener that will print the currently run test on the console. See the sections Using custom listeners and reporters of the junit maven-surefire-plugin documentation or the testng 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>
like image 53
SpaceTrucker Avatar answered Nov 05 '22 20:11

SpaceTrucker


If you use JUnit, you could use a @Rule for this.

If you only want it to apply to when Maven runs the tests, use a System property to en-/disable the output.

like image 44
Aaron Digulla Avatar answered Nov 05 '22 21:11

Aaron Digulla