2

我正在探索如何使用JUnit. 到目前为止,我之所以选择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()
4

1 回答 1

2

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

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

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

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

sdk.dir=<SDK_PATH>

<SDK_PATH>您的 android SDK 存在的路径在哪里。现在,如果您运行测试,它应该可以工作。

于 2012-10-03T20:09:19.077 回答