2013-10-14 67 views
2

我們計劃將我們的本地c/C++項目集成到maven構建過程中,因爲我們正在移植Android的代碼。此外,我們想要制定單元測試,這些單元測試使用標準maven語法(對於java單元測試)自動運行,也適用於當前正在使用CUnit的c/C++項目。這可能與maven集成嗎?將C/C++單元測試與maven集成

回答

0

我不知道是否有這樣做的直接方式,但我會做到以下幾點:

  1. 創建一個可配置的殼/批處理腳本負責執行單元測試。
  2. 通過exec plugin將腳本綁定到測試階段,將此腳本的執行集成到maven中。

這個設置將在每次啓動surefire plugin時運行C++單元測試,例如,通過運行:mvn test

或者,您也可以使用ANT腳本和antrun plugin

下面是一個例子(從Exec插件使用頁面的修改過的版本):

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.2.1</version> 
     <executions> 
      <execution> 
      <phase>test</phase> 
      <goals> 
       <goal>exec</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <executable>run-cpp-tests.sh</executable> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 
+0

對不起,我是很新的Android和Maven的這樣一個問題,我會使用JNI轉換我的C/C++代碼,然後在android prj將做類似於System.loadLibrary(「ABC」);在這種情況下,shell腳本將如何適應。 – user503403

+0

顯然我錯過了與我的答覆:)使用JUnit運行你的單元測試對你的java代碼或者您首選的Java單元測試框架),並使用腳本中的CUnit針對C++代碼運行這些代碼。 – xea

+0

我不會考慮從單元測試和vica的本質上運行Java(如JUnit或TestNG)的C++測試。 – xea