我正在为使用multi dex的项目配置Robolectric。我正在使用Robolectric 3.0 RC3,它应该支持Multidex而不会抛出“Multi dex安装失败”异常。
testCompile('org.robolectric:robolectric:3.0-rc3')
我的样本测试是在src / test / java / SandwichTest:
@RunWith(RobolectricGradleTestRunner.class)
public class SandwichTest {
@Test
public void firstTest() { }
}
我有一个全局配置文件,根据Robolectric site上的说明在src / test / resources中加载名为robolectric.properties的ShadowMultiDex:
shadows=org.robolectric.shadows.ShadowMultiDex
当我运行我的样本SandwichTest时,我得到了这个例外:
Could not load class: org.robolectric.shadows.ShadowMultiDex
java.lang.RuntimeException: Could not load class: org.robolectric.shadows.ShadowMultiDex
at org.robolectric.annotation.Config$Implementation.parseClass(Config.java:147)
看起来Robolectric正在找到我的配置文件但无法加载ShadowMultiDex类。尝试手动将shadow multi dex模块添加到我的gradle文件中:
testCompile('org.robolectric:shadows-multidex:3.0-SNAPSHOT')
或
testCompile('org.robolectric:shadows-multidex')
同步期间导致“无法解决”问题。
我缺少哪些步骤来运行此样本测试?
答案 0 :(得分:7)
在您的问题中,我发现您错过了version
依赖关系中的Gradle
。
你有:
testCompile('org.robolectric:shadows-multidex')
您需要:
testCompile('org.robolectric:shadows-multidex:3.0')
实际发布: https://oss.sonatype.org/content/repositories/releases/org/robolectric/shadows-multidex/
您应该删除:
shadows=org.robolectric.shadows.ShadowMultiDex
来自src/test/resources/robolectric.properties
文件的。这用于custom
阴影。