user84592
user84592

Reputation: 4882

Using Maven, how do I run specific tests?

I have thousands of unit tests in my project, and I'd like to choose one or a couple of them to run from the command line. What's the command to do that?

Upvotes: 79

Views: 96918

Answers (3)

Jake Toronto
Jake Toronto

Reputation: 3584

+1 to the above answers, and... make sure you're in the same directory of the module where the test you're trying to run lives. I ran into this issue, because I normally work in multi-module projects and run mvn clean install from the root of the project... but for this use case, you need to cd into the module of the test you're trying to run.

Upvotes: 5

Vineet Reynolds
Vineet Reynolds

Reputation: 76719

You can run all the tests in a class, by passing the -Dtest=<class> flag to Maven:

mvn clean test -Dtest=xxxxTest

Since Surefire 2.8, you can also run an individual test, say a method testA within your unit tests, using the same flag:

mvn clean test -Dtest=xxxxTest#testA

More examples for running multiple tests, by name pattern or name lists, can be found in the Maven Surefire documentation > Running a Single Test.

Upvotes: 118

Hiery Nomus
Hiery Nomus

Reputation: 17769

Please read this piece of the maven surefire plugin manual. Basically you can do the following:

mvn -Dtest=*PerformanceTest clean test 

Which only runs all the test classes ending in PerformanceTest.

Upvotes: 35

Related Questions