我需要根据maven-jar-plugin documentation =>的这个建议将一些src / test / java移动到src / main / java。 http://maven.apache.org/plugins/maven-jar-plugin/usage.html
我这样做是因为我在测试范围内的另一个项目中使用了测试(辅助)类。
所以我创建了my-project-test,移动了测试类,并配置了surefire以指定测试类目录=>
<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>
但是当我启动mvn test时,执行了0次测试=&gt;
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
问题与此问题相同=&gt; Maven does not find JUnit tests to run但解决方案(配置surefire maven插件)对我不起作用。
答案 0 :(得分:29)
maven surefire插件的良好配置是=&gt;
<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
答案 1 :(得分:1)
由于测试类现已放在src/main/java
中,因此很可能它们在编译阶段编译到target/classes
。
因此,尽管配置了surefire以指示测试源位置为src/main/java
,但仍会在target/test-classes
中查找测试类,因为这是测试类的默认位置。
您可以尝试适当地指定testClassesDirectory参数,看看它是否有效。
另外,我认为您可能误解了maven jar插件文档中的建议。我不相信他们建议将测试源移到 src/main/java
。