繁体   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