我正在通过maven测试执行所有junit测试。 10个类中有57个测试,但不知何故maven只执行 12个班级的12个测试。被忽略的类位于同一文件夹中 作为另一个阶级,执行了。
但是,当我将测试源folter作为JUnit Test运行时,它会执行 所有测试。
有趣的是:我复制了一个已经执行的测试,但是复制了 被maven忽略。
任何帮助将不胜感激。
<build>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>test</testSourceDirectory>
<resources>
<resource>
<directory>resources</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>2.3</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<configuration>
<append>true</append>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 0 :(得分:1)
默认情况下,启动单元测试的是maven-surefire-plugin
,它只包含名称与条件匹配的类。
此插件的includes
参数中记录了这一点。引用:
如果未指定且未指定test参数,则默认包含
<includes> <include>**/Test*.java</include> <include>**/*Test.java</include> <include>**/*TestCase.java</include> </includes>
因此,您需要确保所有测试类都遵循此命名约定。否则,您需要覆盖此默认配置以满足您的需要。