即使排除了测试,maven surefire测试插件也可以运行测试: [英] maven surefire test plugin runs tests even if they are excluded:

查看:87
本文介绍了即使排除了测试,maven surefire测试插件也可以运行测试:的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我排除了插件中除我的测试套件以外的所有测试:

i exclude all tests in plugin except my test suite:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.11</version>
    <configuration>
        <!--
        <testFailureIgnore>true</testFailureIgnore>
        <skipTests>true</skipTests>
        -->
        <parallel>both</parallel>
        <threadCount>10</threadCount>
        <forkMode>once</forkMode>
        <configuration>
            <excludes>
                <exclude>**/Test*.java</exclude>
                <exclude>**/*Test.java</exclude>
                <exclude>**/*TestCase.java</exclude>
            </excludes>
            <includes>
                <include>ru.csbi.registry.CategorizedTestsSuite.java</include>
            </includes>
        </configuration>
        <!--
       <configuration>
           <groups>ru.csbi.registry.IntegrationTestsNotRequiringContainerCategory</groups>
           <groups>ru.csbi.registry.UnitTestsCategory</groups>
       </configuration>
        -->
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>2.12</version>
        </dependency>
    </dependencies>
</plugin>

但所有测试均已执行.

即使我删除了配置中唯一包含的内容,它仍然会运行所有测试:

Even if i delete my the only include in config it still runs all tests:

<configuration>
    <excludes>
        <exclude>**/Test*.java</exclude>
        <exclude>**/*Test.java</exclude>
        <exclude>**/*TestCase.java</exclude>
    </excludes>
    <!--
   <includes>
       <include>ru.csbi.registry.CategorizedTestsSuite.java</include>
   </includes>
    -->
</configuration>

以下是日志:

--------------------------------------------------- --------测试 -------------------------------------------------- -----并发配置为parallel='both'perCoreThreadCount=truethreadCount=10,useUnlimitedThreads = false

------------------------------------------------------- T E S T S ------------------------------------------------------- Concurrency config is parallel='both',perCoreThreadCount=true, threadCount=10, useUnlimitedThreads=false

运行javalangtests.AnnotationTest

Running javalangtests.AnnotationTest

运行测试:2,失败:0,错误:0,跳过:0,经过的时间:0秒

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec

正在运行ru.csbi.registry.services.JdbcServiceTest

Running ru.csbi.registry.services.JdbcServiceTest

运行测试:1,失败:0,错误:0,跳过:0,经过的时间:0秒

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec

运行ru.csbi.registry.services.reflection.ClassServiceTest

Running ru.csbi.registry.services.reflection.ClassServiceTest

运行测试:2,失败:0,错误:0,跳过:0,经过的时间:0秒

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec

运行ru.csbi.registry.services.reflection.FieldServiceTest

Running ru.csbi.registry.services.reflection.FieldServiceTest

运行测试:2,失败:0,错误:0,跳过:0,经过的时间:0秒

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec

跑步 ru.csbi.registry.services.reflection.hibernate.relation.RelationServiceTest

Running ru.csbi.registry.services.reflection.hibernate.relation.RelationServiceTest

运行测试:7,失败:0,错误:0,跳过:0,经过时间:0.016 秒

Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec

有效pom:

  <plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
    <executions>
      <execution>
        <id>default-test</id>
        <phase>test</phase>
        <goals>
          <goal>test</goal>
        </goals>
        <configuration>
          <configuration>
            <includes>
              <include>ru.csbi.registry.CategorizedTestsSuite.java</include>
            </includes>
          </configuration>
        </configuration>
      </execution>
    </executions>
    <configuration>
      <configuration>
        <includes>
          <include>ru.csbi.registry.CategorizedTestsSuite.java</include>
        </includes>
      </configuration>
    </configuration>
  </plugin>

推荐答案

您需要从 configuration 块中删除 configuration 块.

赞:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.11</version>
    <configuration>
        <!--
        <testFailureIgnore>true</testFailureIgnore>
        <skipTests>true</skipTests>
        -->
        <parallel>both</parallel>
        <threadCount>10</threadCount>
        <forkMode>once</forkMode>
        <excludes>
            <exclude>**/Test*.java</exclude>
            <exclude>**/*Test.java</exclude>
            <exclude>**/*TestCase.java</exclude>
        </excludes>
        <includes>
            <include>ru.csbi.registry.CategorizedTestsSuite.java</include>
        </includes>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>2.12</version>
        </dependency>
    </dependencies>
</plugin>

嵌套的 configuration 元素没有任何意义.以及包中的包名称(ru.csbi.registry.CategorizedTestsSuite.java).

Nested configuration element makes no sense. As well as package name in your include (ru.csbi.registry.CategorizedTestsSuite.java).

这篇关于即使排除了测试,maven surefire测试插件也可以运行测试:的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆