拥有'测试者目标'是否是一种谬论?

时间:2016-08-09 20:51:00

标签: maven testing maven-2

好吧,我希望在execute-custom-tests内部有一个maven目标custom-maven-plugin,其中包含运行测试方法(此测试不是单元测试)。例如,与test的{​​{1}}目标类似的东西。

为什么呢?基本上插件的主要目标是测试内容(不是单元测试),soapui-pro-maven-plugin中的测试用于单元测试,对吗?

更具体的是我在考虑这样的事情:

src/test

当测试失败时,我希望将它们标记为失败的测试而不是失败的执行。这里做什么是正确的?请告诉我。

1 个答案:

答案 0 :(得分:0)

Maven约定支持两种类型的开箱即用测试:单元测试(通过maven-surefire-plugin)和集成测试(通过maven-failsafe-plugin)。

默认情况下,带有单元测试的maven-surefire-plugin only looks for the following files

  • ** /试验*的.java
  • ** / * Test.java
  • ** / * TestCase.java

同样,maven-failsafe-plugin运行的default includes for integration tests如下:

  • ** / IT *的.java
  • ** / * IT.java
  • ** / * ITCase.java

因此,正如您所看到的,Maven让每个插件都能确定它应该关注哪些测试。因此,src/test/java包含不同类型的测试,而不仅仅是单元测试,这完全没问题。

不同的文件夹

您也可以将测试放在不同的文件夹中。一个例子是,如果你有非Java测试,那么src/test/java位置没有意义。标准Maven插件从Maven获取项目模型以找出src/test/java位置,而某些第三方插件使用相同的机制。根据您使用的插件,您可能需要查看其配置或使用maven-build-helper-plugin到add-test-source,以便某些插件自动获取另一个测试文件夹。

不同的需求测试

从Maven的角度来看,单元测试和集成测试之间的核心差异是后者的额外要求:他们经常需要将项目打包并且经常需要额外的设置或拆卸。但是您自己可以在测试和集成测试阶段设置多个测试目标。所有主要测试框架都支持指定何时应运行哪个测试套件(例如,通过groups)。如果您的框架没有,您仍然可以使用插件包含/排除。将此与Maven profiles结合使用是一种标准做法,以便默认情况下(在开发期间)运行冒烟测试并对CI环境运行完整测试。你可以使用相同的方法让任何人(测试人员?)按需运行额外的测试,例如,当代码的某些重要部分发生变化时运行额外的重度测试。

相关问题