Java 排除一个特定单元测试的maven依赖项

Java 排除一个特定单元测试的maven依赖项,java,unit-testing,maven,junit,Java,Unit Testing,Maven,Junit,我想删除单元测试的依赖项。我发现了怎么做 但我只想删除一个特定测试的依赖项,而不是所有测试的依赖项。有没有办法做到这一点?不要使用一次Surefire执行 您必须定义Surefire插件的两个执行:一个包含大多数测试的完整类路径,另一个包含需要它的单个测试的专用类路径 遵循Surefire插件的文档: 您必须创建两个执行,并将它们都绑定到test阶段。使用以下示例作为框架(您必须调整include和exclude模式,以及排除的类路径工件): org.apache.maven.plugins

我想删除单元测试的依赖项。我发现了怎么做


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

不要使用一次Surefire执行

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

遵循Surefire插件的文档:

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


org.apache.maven.plugins
maven surefire插件
完全cp
测试
测试
**/Test*.java
MyFancyTest.java
特殊cp
测试
测试
MyFancyTest.java
排除伪影

我不这么认为,因为依赖关系是针对maven模块的。如果您只需要在单个测试中使用它,您可能需要将此测试移动到单独的maven模块。但这听起来像是集成测试,而不是单元测试。也许你可以详细阐述一下,或者发布你的pom文件?的确,这更像是一个集成测试,它是在缺少特定依赖项时测试我的应用程序的行为。你应该将该测试分离到一个单独的maven模块中。然后你需要为每个集成测试创建一个模块?!Surefire插件不适用于集成测试。集成测试应该由maven failsafe插件来运行。Thx很多。尽管khmarbaise是对的,但Isaac还是回答了我的问题。我将研究maven故障保护插件。但是文档看起来很糟糕:p
<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>