2008-09-19 111 views
4

我已經開發了一個(大部分)工作插件,但由於它的功能與它所處理的項目直接相關,因此如何開發插件的單元測試和集成測試。我有最好的想法是爲插件創建一個集成測試項目,該插件在其生命週期中使用插件,並進行測試,報告插件在處理數據時是成功還是失敗。如何使用JUnit創建Maven插件的自動化測試?

任何人有更好的想法?

回答

6

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

 
    <dependency> 
     <groupId>org.apache.maven.shared</groupId> 
     <artifactId>maven-plugin-testing-harness</artifactId> 
     <version>1.1</version> 
     <scope>test</scope> 
    </dependency> 

您從AbstractMojoTestCase派生單元測試類。

您需要創建一個裸露的骨頭POM,通常位於src/test/resources文件夾中。

 
    <project> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>com.mydomain,mytools</groupId> 
        <artifactId>mytool-maven-plugin</artifactId> 
        <configuration> 
         <!-- Insert configuration settings here --> 
        </configuration> 
        <executions> 
         <execution> 
          <goals> 
           <goal>mygoal</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </project> 

使用AbstractMojoTest.lookupMojo(字符串,文件)(或者其它變型中的一個)來加載魔特定目標並執行它。

 
    final File testPom = new File(PlexusTestCase.getBasedir(), "/target/test-classes/mytools-plugin-config.xml"); 
    Mojo mojo = this.lookupMojo("mygoal", testPom); 
    // Insert assertions to validate that your plugin was initialised correctly 
    mojo.execute(); 
    // Insert assertions to validate that your plugin behaved as expected 

我創建了一個我自己的插件,你可以參考澄清http://ldap-plugin.btmatthews.com

相關問題