所以在花了一天左右的时间尝试使用android-gradle-plpugin让robolectric与gradle一起工作后,我读到the creator thinks it's too much hassle and doesn't use it himself
这就是我不能使用它的充分理由。但是现在我找不到任何关于如何设置正常的android测试以在模拟器上运行的文档。它似乎都与日蚀有关。如何使用Android studio运行正常的Android测试。我认为我需要修改build.gradle但是我该怎么做?
我还想使用roboguice将我的依赖项注入测试用例。
修改
所以我在黑暗中捅了一下然后试了这个,但是测试返回false(失败)
public class SearchTest extends ActivityTestCase {
@Inject
private ObjectMapper objectMapper;
@Override
protected void setUp() throws Exception {
super.setUp();
RoboInjector injector = RoboGuice.getInjector(getActivity());
injector.injectMembersWithoutViews(this);
}
public void shouldSerialise() {
System.out.println("called should serialise");
Assert.assertNotNull(objectMapper);
}
}
编辑2
所以我尝试了不同的方法。我跟着this tutorial似乎运行测试但是我遇到了提供清单查找的问题,因为我收到以下错误,
警告:在./AndroidManifest.xml中找不到清单文件。回来 仅适用于Android OS资源。要删除此警告,请注释 你的测试类使用@Config(manifest = Config.NONE)。
然后我使用了这个测试运行器......
public class RobolectricGradleTestRunner extends RobolectricTestRunner {
public RobolectricGradleTestRunner(Class<?> testClass) throws org.junit.runners.model.InitializationError {
super(testClass);
}
@Override protected AndroidManifest getAppManifest(Config config) {
String manifestProperty = System.getProperty("android.manifest");
if (config.manifest().equals(Config.DEFAULT) && manifestProperty != null) {
String resProperty = System.getProperty("android.resources");
String assetsProperty = System.getProperty("android.assets");
return new AndroidManifest(Fs.fileFromPath(manifestProperty), Fs.fileFromPath(resProperty),
Fs.fileFromPath(assetsProperty));
}
return super.getAppManifest(config);
}
}
没有运气。我会更好地恢复到intellij并纯粹使用maven吗?