运行 使用 Maven 进行单元测试

Running Unit-test with Maven

现在我正在学习 Junit5 框架,我发现 运行 我的单元测试不仅有 IDE 选项(我我正在使用 IntellijIdea),但使用 Maven surefire 插件。以太网上的很多文章建议我使用 Maven 插件来 运行 我的测试。也许,我不明白什么,但这有什么意义呢?实际上,我可以使用我的默认 IDE 选项来 运行 它,我错了吗?非常感谢!

在 IntelliJ 中,将其用于 运行 您的单元测试。那是您编写代码的地方,运行 单元测试也在那里,同时处理您的代码。

如果您只是从这里开始,那可能是您曾经 运行 单元测试的唯一地方。但是在任何类型的成熟开发项目中,尤其是在代码协作时,您需要一种在编辑器或 IDE 之外构建项目的方法。虽然 IDE 通常会受到个人偏好等因素的影响,但命令行上的构建(脚本)被认为更具权威性。

如果您在命令行上有一个好的构建(脚本),您也可以在持续集成环境中 运行 它 ("build server"),并适当地自动化构建、测试、报告和部署。

在这个时代,不要为 Java 个项目制作自己的构建脚本。 Maven 是黄金标准。

至少,Maven 将为您提供:

  • 依赖管理:您很可能将(外部)依赖引入到您的项目中。依赖 IDE 进行依赖管理是不一致的另一个来源。 Maven 以可预测、可重现的方式执行此操作。与项目的其他属性一起,这在 Maven 的 POM(文件)中进行管理,即 pom.xml.
  • 默认构建生命周期:构建中可能需要的基本内容。在您的情况下:依赖项解析,然后编译,然后测试执行。您可以在 POM(文件)中重新配置执行的插件,但对于您的问题,默认设置应该可以正常工作。

This is some official documentation about dependency management, and this 关于 POM(文件)。但不要被所有的选择淹没。相反,宁愿依赖 Maven 合理的默认设置。

例如,如果您正在使用 IntelliJ,我建议您使用它来创建您的第一个 Maven 项目,因为它会在工作的 POM(文件)中设置一些东西,而您不必立即了解完全POM。 (选择 "New Project"、select "Maven"、跳过原型 selection,等等。)

这里要记住的重要事项是项目根目录中的 POM(文件)和 Maven 的 Standard Directory Layout,最值得注意的是您的问题 src/main/javasrc/test/java对于您的生产代码。测试代码。