Maven Surefire 提供程序 API

从 Surefire 的 2.7 版开始,有一个提议的公共 API 可供外部提供商使用 Surefire 功能。

Surefire 的主要功能是分叉、报告和目录/类路径扫描。其余功能在提供程序中实现。

请注意,在另行声明之前,此 API 仍可能发生更改,即使是在小修订版中也是如此。这主要是为了满足新供应商的需求。

对提供者的要求

任何供应商都必须满足三件事:

  • 提供者必须实现 org.apache.maven.surefire.providerapi.SurefireProvider 接口。
  • 提供程序包含一个名为 org.apache.maven.surefire.providerapi.SurefireProvider 的 META-INF/services 文件条目(根据ServiceLoader)。此文件包含实际提供程序类的名称。
  • 实际的提供者类包含一个接受 org.apache.maven.surefire.providerapi.ProviderParameters 实例的单参数构造函数。该接口向提供者实现提供了所有可靠的功能,请参阅该接口的 javadoc 以获取选项。

    Surefire 中有 4 个著名的提供程序也是以这种方式实现的,因此可以通过查看 surefire 源代码本身找到示例。surefire-junit47 是展示实现。

    本文中提到的接口上的 javadoc 应该足以编写提供程序。提供程序作为依赖项添加到 surefire/failsafe 插件中。