从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插件失败。如果您在尝试不同的解决方案时更新问题,准确描述您尝试过的内容以及遇到的错误,人们会更容易帮助您。很抱歉,我继续添加了我尝试过的内容,并更改了问题,以更准确地反映我的问题。