[英]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.