从android studio运行robolectric和android单元测试

从android studio运行robolectric和android单元测试,android,android-gradle-plugin,robolectric,robolectric-gradle-plugin,Android,Android Gradle Plugin,Robolectric,Robolectric Gradle Plugin,我目前有各种AndroidTestCases,它们使用Mockito和模块dexmaker Mockito。我现在尝试使用roblectric插件添加roblectric测试用例。 我的一切都运行得很好,只是当我尝试模拟没有参数的方法时,我从Dexmaker得到了一个IllegalArgumentException。删除dexmaker mockito依赖项并使用mockito版本1.9.0而不是1.9.5会导致错误消失,但会导致所有AndroidTestCase失败。在gradle中是否有de

我目前有各种
AndroidTestCases
,它们使用
Mockito
和模块
dexmaker Mockito
。我现在尝试使用
roblectric插件添加
roblectric
测试用例。 我的一切都运行得很好,只是当我尝试模拟没有参数的方法时,我从
Dexmaker
得到了一个
IllegalArgumentException
。删除
dexmaker mockito
依赖项并使用mockito版本
1.9.0
而不是
1.9.5
会导致错误消失,但会导致所有AndroidTestCase失败。在
gradle
中是否有
dexmaker mockito
排除在我的
robololectric
测试用例之外?或者有人知道从android studio运行android单元测试和robolectric单元测试的其他方法吗

错误:
java.lang.IllegalArgumentException位于com.google.dexmaker.mockito.InvocationHandlerAdapter.invoke

更新

我尝试了
gradle android测试插件
robolectric gradle插件
,但无法摆脱
IllegalArguementException
,除非将
mockitio
的版本更改为
1.9.0
并从依赖项中删除
dexmaker
dexmaker mockito

我尝试了,但无法让Android Studio识别我的源代码目录,而不将它们添加到主或测试源代码集中,这会破坏我的构建,因为robolectric不是为那些gradle任务编译的,我不希望这样


这一次,当我从命令行运行测试时,错误消失了,但当我从androidstudio运行时,错误依然存在,我发现这很奇怪。再次将mockitio的版本更改为1.9.0,并从我的Android应用程序中的依赖项中删除
dexmaker
dexmaker mockito
,删除了错误。现在,在找到更好的答案之前,我不能从android studio运行单元测试

如果我正确理解dexmaker mockito应该做什么,它将用于在设备上运行的Android单元测试,因此它对您的Android测试用例很有好处

Robolectric测试在JVM上运行,应该作为JUnit测试而不是Android测试运行。他们不应该使用dexmaker mockito,因为他们永远不会部署到设备上,他们可以使用普通的mockito库,范围设置为test


我认为你可能无法将两者混合,你可能有两种方法将你的机器人测试与你的Android单元测试分开

代码在哪里?????我的代码有点复杂,考虑到这个例子,我会尝试编写一个简单的应用程序,然后发布。你找到解决方案了吗?我现在也遇到了同样的问题。几周前我又尝试了一次,并且在插件方面取得了更大的成功。还有android studio的android单元测试插件,它解决了我的许多其他问题。然而,它最终还是无法为我所用。另一个选择是在这里列出的android studio测试版中尝试内置单元测试。我还没有时间尝试,所以唯一的解决办法就是把测试用例放在不同的模块中?这会导致Robolectric插件失败。如果您在尝试不同的解决方案时更新问题,准确描述您尝试过的内容以及遇到的错误,人们会更容易帮助您。很抱歉,我继续添加了我尝试过的内容,并更改了问题,以更准确地反映我的问题。