java - 依赖 Maven 项目的测试失败

标签 java testing maven build dependencies

我有多个项目,其中项目 X 依赖于项目 Y。 项目 X 上的测试使用读取配置文件的项目 Y。 ( X --> Y --> 配置文件) 我使用 maven-jar-plugin 从 JAR 中排除了一些配置文件。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <inherited>true</inherited>
    <configuration>
        <excludes>
                    <exclude>*.xml</exclude>
                    <exclude>*.*conf*</exclude>
                    <exclude>*.*prop*</exclude>
        </excludes>
    </configuration>
</plugin>

在我的项目上运行“Maven 测试”时一切正常,所有测试均成功。 但是当运行“Maven 包”时,项目 X 测试失败,因为项目 Y 找不到配置文件。

我最好的猜测是,在运行“package”目标时,项目 X 针对项目 Y 的已构建 JAR 而不是其 .class 文件运行。我对么?我该怎么做才能解决这个问题?

最佳答案

也许您会对 the maven-jar-plugin page如何创建包含测试类的 jar 部分感兴趣.

想法是为您的项目 Y 创建两个不同的 jar:除了当前打包的 jar 之外还有一个测试 jar。您执行了两次 maven-jar-plugin,一次用于当前 jar,一次用于测试 jar,其配置文件未被过滤。

要允许项目 X 引用项目 Y 的测试 jar,您还需要在测试 范围 中向该 jar 添加依赖项。

请注意,该页面建议另一种方法,即创建另一个专用于您的测试类的 Maven 项目,您不会为此排除任何配置文件。

关于java - 依赖 Maven 项目的测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028154/

相关文章:

java - IntelliJ : How to add all jar files in a folder to classpath

maven 3 : must specify plugin version, 为什么?

java - JUnit4 测试导致 java.text.ParseException : Unparseable date

java - 使用SpringBootTest和Autowired注解时LogCaptor捕获失败

java.lang.AssertionError : expected: org. json.JSONObject< {"feedback":[]}> but was: org. json.JSONObject< {"feedback":[]}>

django-sane-testing 不启动实时服务器

c - dmatest.ko - 如何使用它?

maven - Kotlin 多模块项目依赖在测试生命周期中未解决

java - 我查询获取列默认值但出现 ORA-17003

java - http 响应中出现无法读取的字符