簡體   English   中英

RobolectricTestRunner在多模塊Maven項目中找不到清單文件

[英]RobolectricTestRunner cannot find manifest file in multi-module maven project

讓我們從我的設置開始。 我有一個多模塊的Maven項目:

ProjectRoot
 \moduleA
 \moduleB

模塊A的(相關)內容:

- 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");

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

設置測試以與Maven一起使用。 然后在Intellij中轉到編輯配置->默認值-> Junit並將“工作目錄”更改為$ MODULE_DIR $ 您可能必須刪除以前的測試運行配置才能生效。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM