Output failed test details to stdout using maven surefire
-
03-03-2021 - |
Question
When I run my build using maven 2
mvn clean install
my tests are run by surefire plug-in. In case test failed I get the following output:
Results :
Failed tests:
test1(com.my.MyClassTest)
Tests run: 3, Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] There are test failures.
Please refer to /home/user/myproject/mymodule/target/surefire-reports for the individual test results.
To get the details about the problem I have to go and check surefire reports folder. Doing this every time my tests fail becomes annoying. Is there any way I can get those details (assert message + exception + stack trace) right here on the stdout ?
Solution
I find there's way too much output produced on stdout
to be useful. Try leaving the HTML report open in your browser. After running your tests just refresh the page. Have a look at target/surefire-reports/index.html
.
To output test results to stdout
rather than a file use the following command:
mvn test -Dsurefire.useFile=false
Or to configure in your pom.xml
add the following to your plugins
section.
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<useFile>false</useFile>
</configuration>
</plugin>
OTHER TIPS
It's possible you may be using an older version of Surefire. I have found that newer versions produce more useful output on the console.
If you only want to see failing tests or tests with errors and only see errors in the build, you can pass the -q argument to your Maven build command.
try using bellow maven command
mvn clean install -DskipTests
-DskipTests
compiles the tests, but skips running them