我的单元测试和我的Android应用程序存在于不同的项目中。
使用Robolectric 1,我可以像这样指定我的/ res目录位置:
public class MyTestRunner extends RobolectricTestRunner {
public MyTestRunner(Class<?> testClass) throws InitializationError {
super(testClass, "../app/AndroidManifest.xml", "../app/res");
}
}
如何在Robolectric 2.2中指定/ res目录位置?
答案 0 :(得分:1)
使用RobolectricTestRunner#getAppManifest(Config)
:
public MyTestRunner(Class<?> testClass) throws InitializationError {
super(testClass);
}
@Override
protected AndroidManifest getAppManifest(Config config) {
return new AndroidManifest(
Fs.fileFromPath("../app/AndroidManifest.xml"),
Fs.fileFromPath("../app/res"),
Fs.fileFromPath("../app/assets"));
}
答案 1 :(得分:1)
前一段时间我有同样的问题,你所要做的就是用以下方法注释你的测试类:
@Config(manifest = "../app/AndroidManifest.xml")
将从您的清单中为您挑选依赖项。
PS。还要确保您使用@RunWith(RobolectricTestRunner.class)
注释了您的测试类,并使用适当的JUnit注释(@Before
,@Test
,@After
等)注释了您的方法(以防万一)你还没有忘记)。