【问题标题】:RobolectricTestRunner cannot find manifest file in multi-module maven projectRobolectricTestRunner 在多模块 Maven 项目中找不到清单文件
【发布时间】:2014-03-13 15:48:40
【问题描述】:

让我们从我的设置开始。 我有一个多模块 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");

请告诉我有更好的方法。 不,我不会改变项目结构来拥有一个单独的测试模块(除非你给我一个很好的理由)!

【问题讨论】:

    标签: android maven intellij-idea robolectric


    【解决方案1】:

    设置您的测试以使用 Maven。然后在 Intellij 中转到 Edit Configurations-->Defaults-->Junit 并将“工作目录”更改为 $MODULE_DIR$。您可能必须删除之前的测试运行配置才能使其生效。

    【讨论】:

      猜你喜欢
      • 2016-01-12
      • 2021-04-02
      • 2021-05-04
      • 1970-01-01
      • 2014-09-14
      • 2017-04-27
      • 2017-10-01
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多