2014-01-21 57 views
3

我有一個簡單的庫,它在Java SE上編譯和運行,並使用Maven構建。測試類是JUnit測試用例(目前是4.x,降級到3.x沒有問題)。在Android模擬器或設備上運行Java SE庫的JUnit測試

該庫可以在Android中使用,但對android.*沒有依賴關係。 由於JDK(Java SE和Android/Harmony)存在一些細微差異,因此在模擬器或Android設備上運行JUnit測試是絕對必要的。

我不想將測試用例複製到Hello-Testing Android項目,但重用現有的類。

有沒有辦法做到這一點?

回答

1

要在android模擬器上執行測試,您需要創建一個測試項目(這個只能使用JUnit 3),這取決於一個普通的Android項目。

我建議你在包含對庫的所有測試調用的庫測試中添加一個測試套裝。創建一個簡單的Hello Word Android項目。爲此項目創建一個Android測試項目。然後,您可以從Android測試項目中調用新創建的測試套件,而無需複製任何測試用例。你所做的只是建立一些包裝項目。

+0

聽起來不錯!你有建議如何爲Wrapper項目提供test.jar嗎?我發現'mvn jar:test-jar'。有沒有標準的方法? – hgoebl

+0

對不起,我以前沒有這樣做過。我不知道最佳實踐方法。 – Simulant

0

也許這不是最佳的解決方案,但我設法測試運行在Android(模擬器或真實設備)的庫。你可以在DavidWebb找到它。

public class DavidWebbAndroidTests extends TestSuite { 
    public static Test suite() { 
     return new TestSuiteBuilder(DavidWebbAndroidTests.class) 
      .includeAllPackagesUnderHere() 
      .build(); 
    } 
} 

需要注意的是,我必須擴展所有測試,以便它們出現在Android上。

希望有人會找到一個更好的解決方案,但至少它的作品。

相關問題