Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是;Maven Surefire插件;意味着什么时候测试你的构建?_Java_Maven_Testing - Fatal编程技术网

Java 什么是;Maven Surefire插件;意味着什么时候测试你的构建?

Java 什么是;Maven Surefire插件;意味着什么时候测试你的构建?,java,maven,testing,Java,Maven,Testing,我正在努力理解Maven,并学习如何用它构建Java应用程序。 所以当我做一个 maven package 它确实按照预期构建了我的jar,但我在输出控制台中看到Maven确实构建了测试(它总是说测试已经运行,并且没有失败)。 我在网上对此进行了研究,了解到Maven使用了一个名为Maven Surefire的插件。但是我不明白这个插件对我的代码做了什么,测试的“意义”是什么?测试对我的代码做了什么,以及它在控制台后面是如何工作的?Maven surefire插件运行您编写的测试。这些文件通常

我正在努力理解Maven,并学习如何用它构建Java应用程序。 所以当我做一个

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

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

这只是一个问题吗D

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

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

当您现在使用maven运行构建时,pom.xml文件定义了一个打包——在您的例子中是“jar”,因为您创建了一个jar文件。包装定义了在中运行。您可能在这里认出了
软件包
。Maven执行所有阶段,直到包和已注册/配置的插件

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

所以测试只是运行您的生产代码——事实上,它们只是执行您在测试中实现的操作。他们不会以任何方式改变它

maven简介文档有逐步的解释:和


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

欢迎使用stackoverflow。在提出任何问题之前,您是否尝试阅读maven文档: