【发布时间】:2008-09-19 19:27:09
【问题描述】:
我已经开发了一个(大部分)工作插件,但由于它的功能与它处理的项目直接相关,你如何为插件开发单元和集成测试。我的最佳想法是为插件创建一个集成测试项目,该项目在其生命周期内使用该插件,并通过测试报告插件处理数据的成功或失败。
谁有更好的想法?
【问题讨论】:
标签: java maven-2 automated-tests
我已经开发了一个(大部分)工作插件,但由于它的功能与它处理的项目直接相关,你如何为插件开发单元和集成测试。我的最佳想法是为插件创建一个集成测试项目,该项目在其生命周期内使用该插件,并通过测试报告插件处理数据的成功或失败。
谁有更好的想法?
【问题讨论】:
标签: java maven-2 automated-tests
你需要使用maven-plugin-testing-harness,
您从AbstractMojoTestCase 派生单元测试类。
您需要创建一个简单的 POM,通常在 src/test/resources 文件夹中。
使用 AbstractMojoTest.lookupMojo(String,File)(或其他变体之一)为特定目标加载 Mojo 并执行它。
最终文件 testPom = new File(PlexusTestCase.getBasedir(), "/target/test-classes/mytools-plugin-config.xml"); Mojo mojo = this.lookupMojo("mygoal", testPom); // 插入断言以验证您的插件是否已正确初始化 mojo.execute(); // 插入断言以验证您的插件是否按预期运行我创建了自己的插件,您可以参考http://ldap-plugin.btmatthews.com 进行澄清,
【讨论】:
如果您想查看一些真实世界的示例,Terracotta Maven 插件 (tc-maven-plugin) 提供了一些测试,您可以在开源 forge 中仔细阅读。
插件位于:http://forge.terracotta.org/releases/projects/tc-maven-plugin/
来源在svn中:http://svn.terracotta.org/svn/forge/projects/tc-maven-plugin/trunk/
在该源代码中,您可以在以下位置找到一些实际的 Maven 插件测试:src/test/java/org/terracotta/maven/plugins/tc/
【讨论】: