当前位置: 首页 > 知识库问答 >
问题:

运行gradlew测试时android中的Jvm选项

巫马嘉祯
2023-03-14

我有一个使用Robolectrec进行单元测试的项目。这个项目使用Robolectrec 3.0,需要在虚拟机选项中添加-ea-no验证选项。

在Android Studio中,我在Run中创建了新的JUnit配置

然而,对于连续部署,我需要用命令行运行单元测试。所以我使用./gradlew test来运行单元测试。我还添加了org.gradle.jvmargs=-ea-no验证gradle.properties文件。不幸的是,它不起作用。我可以运行单元测试,但是我得到了java.lang.VerifyError,我认为gradle.properties没有加载。

所以,我的问题是,如何制作gradle。属性load或者你知道有什么方法可以解决我的虚拟机选项问题吗?


共有3个答案

濮冠宇
2023-03-14

也许是这个

 ./gradlew -Dorg.gradle.jvmargs="-ea -noverify" test
阚通
2023-03-14

我发现我们可以将此块添加到应用程序的build.gradle来解决这个问题

tasks.whenTaskAdded { theTask ->
    def taskName = theTask.name.toString()
    if ("testDevDebug".toString().equals(taskName)) {
        theTask.jvmArgs('-ea', '-noverify')
    }
}

DevDebug是我的构建变体。

冉锋
2023-03-14

已经回答了,但这可能是一个更简单的解决方案:

在应用程序模块的构建中。gradle文件在android closure中,添加这个。

android {
  ....

  testOptions {
    unitTests.all {
      jvmArgs '-noverify'
    }
  }
}
 类似资料:
  • 我有一个特殊的情况。基本上我有一个单元测试,用@Test注释,在这个测试中我需要执行一个Cucumber JVM测试类。 为什么?说来话长。与类加载器和RoboGuice有关,这不是很重要,但它确实限制了我能做什么和不能做什么。 以下是测试方法: MyCucumberTest是我创建的一个类,并注释如下: 为什么我要注释掉@RunBy注释?因为如果我不这样做,Cucumber测试运行程序会拿起测试

  • 我使用的是PACT JVM https://github.com/dius/pact-jvm/tree/master/provider/pact-jvm-provider-junit我不知道为什么我的联系人中的匹配规则被忽略了。我的HTTP测试 还有我的合同档案 并在运行后显示错误 请帮忙把我的观点说错。 谢谢,

  • 如何使用Maven在以下位置运行cucumber测试。 源文件夹'src/main/java'和'src/main/resources'包括在每个源文件夹中创建的包'com.testing.testproject.login'中的步骤定义和功能文件。 这是我的POM文件: 提前道谢。

  • 问题内容: 我有一个包含200多个测试类别的近500个单独测试的项目。这些测试中有一些在完成测试后并不能很好地关闭它们自己的状态,在Eclipse中这会导致某些测试失败。通过Ant从命令行运行测试套件时,所有测试均通过。 我可以在Eclipse中以某种方式启用“测试隔离”吗?我不在乎是否需要更长的时间。 从长远来看,我会清理行为异常的测试,但短期而言,我想使测试正常工作。 问题答案: 如果在Ecl

  • 我花了相当长的时间试图弄清楚如何在使用WiRemock运行Android Espresso测试时修复这个错误。 java.lang.NoClassDefoundError:未能解析:loRg/Apache/HTTP/Protocol/HttpRequestExecutor 我该怎么修好它?

  • 我有一些问题设置/运行espresso测试的Android。我的TestClass如下所示:- 在设备仿真器-5554上启动检测Android.test.InstrumentationTestRunner 向Eclipse发送测试信息 测试完成 没有提到运行测试,测试也不会运行。我会错过什么?