我正在使用Android Studio/IntelliJ
来构建一个现有的Android
项目,并希望添加一些简单的JUnit
单元测试。在哪个文件夹中添加这样的测试是正确的?
android Gradle
插件定义了一个目录结构,其中src/main/java
用于主要源代码,src/instrumentTest/java
用于Android
测试。
尝试在instrumentTest中添加我的JUnit测试对我来说不起作用。我可以将其作为Android
测试运行(这正是该目录的用途),但这不是我想要的--我只想运行一个简单的JUnit
测试。我试着为这个类创建一个源代码运行配置,但同样不起作用--我假设是因为我使用的目录被标记为Android
JUnit,而不是源代码。
如果我创建一个新的源文件夹,并在项目结构中这样标记它,那么下次IntelliJ
从gradle build文件中刷新项目配置时,它将被清除。
在IntelliJ
上的基于gradle的安卓项目中配置JUnit测试更合适的方法是什么?对此使用哪种目录结构?
发布于 2015-02-12 04:53:49
从Android Studio1.1开始,答案很简单:http://tools.android.com/tech-docs/unit-testing-support
发布于 2013-07-25 06:02:00
通常情况下,你不能。欢迎来到Android的世界,所有的测试都必须在一个设备上运行(除了Robolectric)。
主要原因是您实际上没有框架的源代码-即使您说服IDE在本地运行测试,您也会立即得到一个"Stub!Not implemented“异常。“为什么?”你可能会疑惑?因为SDK给你的android.jar
实际上是所有的存根-所有的类和方法都在那里,但是它们都抛出了一个异常。它的作用是提供一个API,而不是给你任何实际的实现。
有一个很棒的项目叫做Robolectric,它实现了很多框架,这样你就可以运行有意义的测试了。再加上一个很好的模拟框架(例如,Mockito),它让你的工作变得易于管理。
Gradle插件:https://github.com/robolectric/robolectric-gradle-plugin
发布于 2015-05-16 16:07:51
现在Android Studio从Android Gradle plugin 1.1.0开始支持这一点,请查看以下内容:
https://developer.android.com/training/testing/unit-testing/local-unit-tests.html
在GitHub上进行本地单元测试的示例应用程序:
https://github.com/googlesamples/android-testing/tree/master/unittesting/BasicSample
https://stackoverflow.com/questions/17844957
复制相似问题