Reputation: 4734
I needed to move some src/test/java to src/main/java according to this recommandation from maven-jar-plugin documentation => http://maven.apache.org/plugins/maven-jar-plugin/usage.html
I did so because, i used tests (helper) classes in another projects in test scope.
So i create my-project-test, moved in test classes, and configured surefire to specify test classes directory =>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testSourceDirectory>${basedir}\src\main\java\</testSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
But when i launched mvn test, 0 tests is executed =>
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
The problem is the same as this one => Maven does not find JUnit tests to run but the solution (configure surefire maven plugin) is not working for me.
Upvotes: 27
Views: 14489
Reputation: 52645
Since the test classes have now been placed in src/main/java
, it is likely that they are getting compiled during the compile phase to target/classes
.
So, though surefire is configured to indicate that the test source location is src/main/java
, it would still look for test classes in target/test-classes
, since this is the default location for test classes.
You could try specify testClassesDirectory parameter suitably and see if it works.
Also, I think you may have misinterpreted the recommendation in the maven jar plugin documentation. I do not believe they suggest moving test sources to src/main/java
.
Upvotes: 1
Reputation: 4734
The good configuration for maven surefire plugin is =>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testSourceDirectory>${basedir}/src/main/java/</testSourceDirectory>
<testClassesDirectory>${project.build.directory}/classes/</testClassesDirectory>
</configuration>
</plugin>
</plugins>
</build>
Results :
Tests run: 20, Failures: 0, Errors: 0, Skipped: 0
Upvotes: 34