Android RobolectrictTestRunner在多模块maven项目中找不到清单文件
让我们从我的设置开始。 我有一个多模块maven项目:Android RobolectrictTestRunner在多模块maven项目中找不到清单文件,android,maven,intellij-idea,robolectric,Android,Maven,Intellij Idea,Robolectric,让我们从我的设置开始。 我有一个多模块maven项目: ProjectRoot \moduleA \moduleB 模块A的相关内容: - AndroidManifest.xml - src\main\java\HelloWorldActivity - src\test\java\HelloWorldActivityTest HelloWorldActivityTest的注释为:@runWithRoboeElectricTestRunner.class 我的问题是,如果我指定清单位置,它
ProjectRoot
\moduleA
\moduleB
模块A的相关内容:
- AndroidManifest.xml
- src\main\java\HelloWorldActivity
- src\test\java\HelloWorldActivityTest
HelloWorldActivityTest的注释为:@runWithRoboeElectricTestRunner.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\u DIR$。您可能必须删除以前的测试运行配置才能使其生效