【问题标题】:How do you create automated tests of a Maven plugin using JUnit?如何使用 JUnit 创建 Maven 插件的自动化测试?
【发布时间】:2008-09-19 19:27:09
【问题描述】:

我已经开发了一个(大部分)工作插件,但由于它的功能与它处理的项目直接相关,你如何为插件开发单元和集成测试。我的最佳想法是为插件创建一个集成测试项目,该项目在其生命周期内使用该插件,并通过测试报告插件处理数据的成功或失败。

谁有更好的想法?

【问题讨论】:

    标签: java maven-2 automated-tests


    【解决方案1】:

    你需要使用maven-plugin-testing-harness

    org.apache.maven.sharedmaven-plugin-testing-harness1.1版本> 测试依赖>

    您从AbstractMojoTestCase 派生单元测试类。

    您需要创建一个简单的 POM,通常在 src/test/resources 文件夹中。

    com.mydomain,mytoolsmytool-maven-plugin配置> 我的目标目标> 目标> 执行> 执行> 插件> 插件> 项目>

    使用 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 进行澄清,

    【讨论】:

      【解决方案2】:

      如果您想查看一些真实世界的示例,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/

      【讨论】:

        猜你喜欢
        • 2016-01-20
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        • 2014-08-18
        • 2017-10-27
        • 2017-06-23
        • 2011-04-17
        相关资源
        最近更新 更多