2014-03-13 58 views
1

讓我們從我的設置開始。 我有一個多模塊Maven項目:moduleA的RobolectricTestRunner在多模塊maven項目中找不到清單文件

ProjectRoot 
\moduleA 
\moduleB 

(相關)內容:

- AndroidManifest.xml 
- src\main\java\HelloWorldActivity 
- src\test\java\HelloWorldActivityTest 

HelloWorldActivityTest標註有:@RunWith(RoboelectricTestRunner.class)

我的問題是如果我指定清單位置,它將無法在IntelliJ IDEA或Maven(從命令提示符)中工作。

如果我指定的位置是:「/moduleA/AndroidManifest.xml」它工作在的IntelliJ 如果我指定的位置是「/AndroidManifest.xml」它工作在Maven的

所以指定的路徑將被解釋爲相對於項目根目錄(在Maven的情況下)或項目模塊(在IntelliJ的情況下)

爲了使它在兩種情況下都工作,我現在通過設置屬性來使用醜陋的解決方法項目建成使用Maven,如果屬性沒有設置我做:

System.setProperty("android.manifest", "moduleA/AndroidManifest.xml"); 
System.setProperty("android.resources", "moduleA/res"); 
System.setProperty("android.assets", "moduleA/assets"); 

請告訴我有更好的方法。 不,我不會改變項目結構來擁有一個單獨的測試模塊(除非你給我一個很好的理由)!

回答

0

設置您的測試以使用Maven。然後在Intellij中進入編輯配置 - >默認 - > Junit,並將您的「工作目錄」更改爲$ MODULE_DIR $。您可能必須刪除以前的測試運行配置才能生效。

enter image description here