使用RobolectricTestRunner的JUnit测试被卡住了

时间:2012-09-11 17:47:49

标签: intellij-idea junit4 robolectric

我正在发现如何使用JUnit运行Android应用程序的测试。到目前为止,我选择Robolectric因为它提供了更快,更容易的反馈。

不幸的是我的第一次测试卡住了,我正在寻找找出原因的方法。我尝试记录@Before@Test方法,但看起来它在跑步者初始化的某处停了。

我正在使用Robolectric 1.1,JUnit 4.8.2,IntelliJ IDEA和Android 4.1 SDK。

UPD:我通过在IDEA暂停我的测试执行来进一步推动我看到Runner正在做一些工作,但看起来它卡住了或在这些方法中循环:

getAndroidResourcePathByExecingWhichAndroid():327, ResourceLoader {com.xtremelabs.robolectric.res}

getAndroidResourceSubPath()

1 个答案:

答案 0 :(得分:2)

我还没有找到导致此问题的原因,但却能够设计出一种解决方法。

在查看robolectric源之后,似乎ResourcePathLoader类尝试了许多方法来获取资源路径,最后一个是getAndroidResourcePathByExecingWhichAndroid()。

通常对于Intellij,它应该从“local.properties”文件中查找SDK路径。 Intellij通常在从头开始创建项目时创建此文件,但由于某种原因,我的项目中缺少它。

因此,解决方法是创建local.properties文件并将其存储在项目的根级别,它应包含行

sdk.dir=<SDK_PATH>

其中<SDK_PATH>是您的Android SDK存在的路径。现在,如果您运行测试,它应该可以工作。