“ Maven Surefire插件”在测试构建时意味着什么?

时间:2019-12-19 09:04:53

标签: java maven testing

我正在努力理解Maven,并且正在学习使用它构建Java应用程序的知识。 所以当我做一个:

maven package

它确实按照预期的方式构建了我的jar,但是我在输出控制台中看到Maven确实构建了测试(它总是说测试运行并且没有失败)。 我在网上对此进行了研究,并了解到Maven使用了名为Maven Surefire的插件。但是我不明白该插件对我的代码有什么作用,测试“意味着”什么?这些测试对我的代码有什么作用,以及它如何在控制台后面工作?

2 个答案:

答案 0 :(得分:0)

Maven surefire插件运行您编写的测试。这些通常位于src/test/java文件夹中。如果您没有,插件将不执行任何操作。

答案 1 :(得分:0)

这只是一个问题吗? :D

所以。正在发生不同的事情。

您使用Java创建应用程序。要测试大多数人创建的单个组件/包/类,请使用JUnitTestNg。通常,您有专用的测试类来验证您的生产代码是否按预期运行,而无需单击每个更改的所有内容。

现在使用maven运行构建时,pom.xml文件将定义一个包装-在您的情况下为“ jar”,因为您创建了jar文件。包装定义了what set of default plugins中运行的defined maven phases。您可能在这里认识了package。 Maven执行包和注册/配置的插件的所有阶段。

要执行这些测试,maven提供了surefire plugin,它支持运行JUnit或TestNg测试。如果遵循目录约定,则测试将驻留在src/test/java中,并且surefire includes naming convention Maven将在每个构建中执行这些测试(因为这是最佳实践)。如果您还想编写集成测试,那么这里有failsafe plugin。该插件默认未启用,并且在不同的Maven阶段运行。

因此,测试仅运行您的生产代码-实际上,它们只是执行您在测试中实现的功能。他们不会以任何方式改变它。

maven简介文档中有逐步的说明:Maven in 5 MinutesGetting Started Guide

从头开始,这可能很多。所以不要着急。构建设置和测试设置是非常重要的事情。