【发布时间】:2015-08-18 02:25:33
【问题描述】:
在 android studio 1.3 中,我无法运行整个测试用例。我可以毫无问题地运行单个测试用例,但是当我尝试运行所有测试时出现以下错误:
Exception: java.lang.OutOfMemoryError thrown from the
UncaughtExceptionHandler in thread "Test worker" java.lang.OutOfMemoryError: PermGen space
我试图从 shell 和 android studio 增加我的记忆,但它根本没有帮助。
JAVA_OPTS=-Xmx2048m -XX:MaxPermSize=768m
JAVA_TOOL_OPTIONS=-Xmx1024m -XX:MaxPermSize=512m -Xms512m
我的测试都是模拟的(我有一种叫做模拟的味道)所以我切换到构建变体 mockDebug 然后我在终端上运行以下命令:
./gradlew :app:TestMockDebug
我的测试使用 robolectric 作为测试运行器。
另一个有趣的事情是,如果我从项目资源管理器中右键单击包含测试的包并执行“在包中运行测试......”然后它会运行测试。所以我唯一的问题是让它从命令行运行。
【问题讨论】:
-
我最近也遇到了这个问题。我通过了我的测试并添加了很多拆解方法,我为我的间谍实例执行
reset()。它帮助了一点,但我不时得到这个例外。我的清单上有一个待办事项,可以完全重做一些测试,以消除间谍并尽可能减少模拟
标签: android unit-testing android-studio robolectric