java - 在 Maven 中配置 JUnit 目录结构

标签 java spring maven junit

我有一个 Java Spring 应用程序,目录中包含单元测试

src/test具体src/test/com/client/rest

我想在此处添加一个子目录,例如

src/test/com/client/rest/controllers

其中包含应用程序所有 Controller 的单元测试。我在此目录中创建了一个带有“@Test”端点的文件,但没有对 POM.xml 执行任何操作。当我运行mvn clean package时我收到以下错误

The goal you specified requires a project to execute but there is no POM in this directory [path]. Please verify you invoked Maven from the correct directory.

我尝试将这个新目录添加为 POM.xml 中 build 下的 testResource 元素,但这不起作用。在添加这个新文件之前,测试运行良好 <testSourceDirectory>src/test</testSourceDirectory>在构建元素下。

如何正确地将这个新的 JUnit 目录集成到 Maven 中?

编辑:我将新文件移动到其他 JUnit 测试文件所在的标准父目录 ( src/test/com/client/rest ),并且似乎注册良好。存储 JUnit 类文件的最佳实践是什么?出于组织目的是否值得尝试创建新的子目录?

最佳答案

我认为错误来自于从项目根目录以外的其他地方运行 mvn 命令。

How do I properly integrate this new JUnit directory into Maven?

遵循 Maven 标准目录布局 - https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

您的测试应该位于 src/test/java/com/client/rest/controllers 下。然后它们应该是可发现的并且无需任何额外的 Maven 配置即可工作。

What is the best practice for storing JUnit class files, and is it worthwhile to try to create new child directories for organizational purposes?

组织测试是值得的。我认为您缺少的部分是您正在用 Java 编写测试,因此您需要使用目录和包来组织测试。因此,位于 src/test/java/com/client/rest/controllers 下的测试将具有 com.client.rest.controllers 包。

关于java - 在 Maven 中配置 JUnit 目录结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58805850/

相关文章:

java - WebAppConfiguration 不能很好地与 ContextConfiguration 配合使用?

java - dockerClient.createContainerCMD 未将 Selenium 节点链接到 Hub

java - 在表单中修改时,不会返回 JSP 页面中的对象。(数据写入 ID 为 0 的新对象)

java - 在 spring MVC 中将图像上传到服务器并将引用存储在 mysql 数据库中

java - 如何使用 jar 文件中的 Liquibase 变更日志

java - 使用 java Files.walk 仅从根文件夹获取文件名并跳过其子目录时出现问题

Java Jackson 大对象序列化优化

java - 构建期间复制到 Java 资源目录时 Maven 损坏了 WAV 文件

java - SpringMVC + Spring Security Hibernate + Thymeleaf - 我的 pom.xml 太多了吗?

java - Ivy 未解决公共(public) Maven 存储库的传递依赖关系