即使排除了测试,maven surefire测试插件也可以运行测试: [英] maven surefire test plugin runs tests even if they are excluded:
问题描述
我排除了插件中除我的测试套件以外的所有测试:
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=true
,threadCount=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屋!