不在默认 src/test/java 文件夹中运行 maven 测试

Posted

技术标签:

【中文标题】不在默认 src/test/java 文件夹中运行 maven 测试【英文标题】:Run maven test not in default src/test/java folder 【发布时间】:2012-11-06 19:28:51 【问题描述】:

我有一个包含pom.xml 和一些JUnit 测试的项目。 pom.xml 和单元测试都是正确的。但问题是测试不在 src/test/java 文件夹中(我不能使用这个文件夹)。是否可以告诉 maven 从另一个源文件夹(也在这个项目中)执行测试?

【问题讨论】:

在另一个源文件夹 - src/int-test/java 我相信你有很多理由不能使用 src/test/java。所以我只想问“为什么?”因为到目前为止没有人回答你的问题。 (也许答案会提供更多洞察力。)我学到的关于 Maven 的第一件事就是你真的应该适应它的约定,因为如果你不这样做只会很痛苦。这就是“配置与约定”的整体理念。 这些测试真的是单元测试吗?根据文件夹的名称,我假设这些测试是集成测试。如果这是真的,则不应将 maven-surefire-plugin 用于此类目的。更好的是使用 maven-failsafe-plugin 进行此类集成测试。 【参考方案1】:

将这部分添加到您的 pom 中就足够了:

<project>
    ...
    <build>
        <testSourceDirectory>src/int-test/java</testSourceDirectory>
    </build>
    ...
</project>

测试源将在test-compile 阶段编译,maven-surefire-plugin 也会找到测试类。

【讨论】:

在 maven 3.6.2 下这会导致以下错误:[ERROR] Some problems were encountered while processing the POMs: Malformed POM ....../pom.xml: Unrecognised tag: 'testSourceDirectory' (position: START_TAG seen ...&lt;build&gt;&lt;testSourceDirectory&gt;.

以上是关于不在默认 src/test/java 文件夹中运行 maven 测试的主要内容,如果未能解决你的问题,请参考以下文章

maven web不能创建src/main/java等文件等问题

maven web工程缺少 src/main/java 和 src/test/java 资源文件夹的方法

在没有 Maven 的 Eclipse 中创建 src/main/java 文件夹结构

如何从资源文件夹加载文件?

Spring Boot

Maven修改test/rsource的output folder报错Test source folder 'src/test/java'... is not also used fo