2015-10-02 56 views
0

我很努力地通过maven测试来执行所有的junit测试。 在10个班中有57个测试,但不知何故,maven只执行 12个班中的12个测试。被忽略的类与另一个类位于相同的文件夹 中,正在执行。Maven只执行少量测试

但是,当运行我的测试源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

类名和测试应该有前缀/后缀“测试” – gba

+0

我知道它有一个简单的解决方案:D谢谢。 欢迎您发布它作为答案。 – Felix

回答

1

默认情况下,它是发射单元测试的maven-surefire-plugin,它仅包括类,它们的名称相匹配的条件。

这在此插件的includes参数中有记录。引用:

如果没有指定,而不是规定的试验参数时,默认包括将

<includes> 
    <include>**/Test*.java</include> 
    <include>**/*Test.java</include> 
    <include>**/*TestCase.java</include> 
</includes> 

因此,你需要确保所有的测试类尊重这个命名约定。否则,您需要覆盖此默认配置以满足您的需求。