让我们从我的设置开始吧。 我有一个多模块maven项目:
ProjectRoot
\moduleA
\moduleB
(相关)moduleA的内容:
- 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 :(得分:0)
设置测试以使用Maven。然后在Intellij中转到编辑配置 - >默认值 - > Junit并将您的“工作目录”更改为 $ MODULE_DIR $ 。您可能必须删除以前的测试运行配置才能使其生效。