什么是 Mojo 测试线束?

单元测试通过模拟 Maven 环境的其余部分来尝试将 mojo 验证为一个独立的单元。mojo 单元测试不会尝试在真正的 Maven 构建的上下文中运行您的插件。单元测试旨在快速。

这个测试库不是为集成或功能测试而设计的: maven-invoker-plugin是你需要的方式,它为你提供了一个完整的 Maven 环境,但代价是更多的资源和时间消耗。

[最佳]


支持哪些类型的单元测试?

来自 JUnit 的测试用例
您可以使用JUnit 框架以与编写任何其他 JUnit 测试用例相同的方式测试您的插件,即通过编写扩展 TestCase的测试类。
来自 Plexus 的测试用例
编写 Mojo 是为了利用Plexus 容器的特定优势。如果您需要 Plexus 容器服务,您可以编写扩展PlexusTestCase的类,而不是TestCase
来自测试工具的测试用例
如果您需要将 Maven 对象注入到您的 mojo 中,您可以使用maven-plugin-testing-harness。maven -plugin-testing-harness明确用于测试 org.apache.maven.reporting.AbstractMavenReport#execute()实现。

[最佳]


Mojo Testing Harness 2.x 是否与 Maven 2.x 兼容?

Mojo Testing Harness 2.0+ 需要 Maven 3.0。这并不一定意味着您的 mojo 将与 Maven 2.x 不兼容,它仅意味着 mojo 单元测试使用 Maven 3.x 库来模拟 Maven 环境。尽管如此,如果您想绝对确定您的 mojo 与 Maven 2.x 兼容,那么您可能想要使用 Mojo Testing Harness 1.x。

[最佳]