Android studio 1.3 无法对 运行 进行完整测试

Android studio 1.3 unable to get entire tests to run

在 android studio 1.3 中,我无法 运行 整个测试用例。我可以 运行 个单独的测试用例,没有任何问题,但是当我尝试 运行 所有测试时,我收到以下错误:

  Exception: java.lang.OutOfMemoryError thrown from the 
UncaughtExceptionHandler in thread "Test worker" java.lang.OutOfMemoryError: PermGen space

我试图通过 shell 和 android 工作室来增加我的记忆,但它根本没有帮助。

JAVA_OPTS=-Xmx2048m -XX:MaxPermSize=768m
JAVA_TOOL_OPTIONS=-Xmx1024m -XX:MaxPermSize=512m -Xms512m

我的测试都是模拟的(我有一种叫做模拟的风格)所以我切换到构建变体 mockDebug 然后我 运行 在终端上执行以下操作:

./gradlew :app:TestMockDebug

我的测试使用 robolectric 作为测试 运行ner。

另一件有趣的事情是,如果我从项目资源管理器转到并右键单击包含测试的包并执行 "run tests in package ...",那么它 运行 就是测试。所以我唯一的问题是从命令行将它设置为 运行。

为了解决这个内存不足异常,我通过如下设置 shell 环境变量来添加更多内存:

    export JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=768m"
export JAVA_TOOL_OPTIONS="-Xmx1024m -XX:MaxPermSize=512m -Xms512m"

尽管我在 gradle.properties 中设置了内存,但从命令行看来这些属性是看不到的。所以命令行选项java 必须设置来增加内存。如果您在执行此操作后检查终端日志,您会看到类似这样的一行证明相同:

Picked up JAVA_TOOL_OPTIONS: -Xmx1024m -XX:MaxPermSize=512m -Xms512m