我正在发现如何使用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()
答案 0 :(得分:2)
我还没有找到导致此问题的原因,但却能够设计出一种解决方法。
在查看robolectric源之后,似乎ResourcePathLoader类尝试了许多方法来获取资源路径,最后一个是getAndroidResourcePathByExecingWhichAndroid()。
通常对于Intellij,它应该从“local.properties”文件中查找SDK路径。 Intellij通常在从头开始创建项目时创建此文件,但由于某种原因,我的项目中缺少它。
因此,解决方法是创建local.properties文件并将其存储在项目的根级别,它应包含行
sdk.dir=<SDK_PATH>
其中<SDK_PATH>
是您的Android SDK存在的路径。现在,如果您运行测试,它应该可以工作。