排除一个特定单元测试的maven依赖关系

时间:2013-04-15 15:53:21

标签: java unit-testing maven junit

我想删除单元测试的依赖项。我找到了怎么做in this answer

但我想删除一个特定测试的依赖项,而不是我的所有测试。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

不是通过使用一个Surefire执行。

您必须定义两个Surefire插件的执行:一个包含大多数测试的完整Classpath,另一个包含需要它的单个测试的专用Classpath。

按照Surefire插件的文档:http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html

您必须创建两个执行,并将它们绑定到test阶段。使用以下示例作为框架(您必须调整includeexclude模式以及排除的Classpath工件:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <executions>
            <execution>
                <id>full-cp</id>
                <phase>test</phase>
                <goals>
                    <goal>test</goal>
                </goals>
                <configuration>
                    <includes>
                        <include>**/Test*.java</include>
                    </includes>
                    <excludes>
                        <exclude>MyFancyTest.java</exclude>
                    </excludes>
                </configuration>
            </execution>
            <execution>
                <id>special-cp</id>
                <phase>test</phase>
                <goals>
                    <goal>test</goal>
                </goals>
                <configuration>
                    <includes>
                        <include>MyFancyTest.java</include>
                    </includes>
                    <classpathDependencyExcludes>
                        <classpathDependencyExcludes>excluded-artifact</classpathDependencyExcludes>
                    </classpathDependencyExcludes>
                </configuration>
            </execution>
        </executions>
    </plugin>
</plugins>