开发者中心

在使用surefire时,有必要了解一些事情:

多模块项目

该插件是作为多模块插件的一部分构建的。生成的“项目信息”将建议您查看(例如)http://svn.apache.org/repos/asf/maven/surefire/trunk/maven-failsafe-plugin。事实上,您需要查看(例如)http://svn.apache.org/repos/asf/maven/surefire/trunk 并从那里构建。

JDK 版本

万无一失的引导程序能够一直引导回 jdk1.3。具体来说,这意味着surefire-api、surefire-booter、common-junit3 和surefire-junit3 是源/目标1.3。插件本身是 1.4,一些提供者是 1.5。

提供者隔离

SUT(被测对象)中的类覆盖了万无一失的提供者中的任何类。这意味着使用任何第三方依赖项(除了测试框架本身)的提供者应该将这些类隐藏到不同的包中。

通用提供程序模块

surefire-providers 模块包含 common-junitXX 模块。这些模块依赖于 JUnit 的 XX 版本,并且可以在正确的 JUnit 版本级别访问 JUnit API。也可以编写将使用正确的 JUnit 版本运行的单元测试。在构建时,这些“通用”模块的所有相关部分都只是隐藏在提供程序的 jar 文件中。

影火

“Shadefire”是在 surefire 构建中运行的第一个模块。这将创建为 JUnit 提供程序的阴影版本,然后此提供程序用于构建万无一失的自身(从 2.8 之后的任何版本开始)。这是因为 SUT 覆盖了提供程序,并且 shadefire 提供程序已被重新定位,以避免在surefire 自身构建时这种覆盖。

部署/释放surefire

Surefire 依赖于其自身的先前版本,对于 maven 2.2.x 依赖解析来说太高级了,构建 surefire 需要 maven 3.x。在发布 3.x 站点插件之前,必须使用 mvn 2.2.1(使用 -N 选项)部署 Surefire 站点。