针对android项目使用gradle进行junit测试
我试图让测试(junit和robolectric)在Android项目中运行,但我完全被卡住了。我的主要问题是,我在gradle中发现的所有测试都以某种方式引入了java插件,然后我得到了以下错误:针对android项目使用gradle进行junit测试,android,junit,gradle,junit4,robolectric,Android,Junit,Gradle,Junit4,Robolectric,我试图让测试(junit和robolectric)在Android项目中运行,但我完全被卡住了。我的主要问题是,我在gradle中发现的所有测试都以某种方式引入了java插件,然后我得到了以下错误: The 'java' plugin has been applied, but it is not compatible with the Android plugins. 目前我看到的唯一出路是分为测试和应用程序项目,但我希望避免这种情况。如有任何示例/提示,将不胜感激 在本文中,没有提到单元测
The 'java' plugin has been applied, but it is not compatible with the Android plugins.
目前我看到的唯一出路是分为测试和应用程序项目,但我希望避免这种情况。如有任何示例/提示,将不胜感激
在本文中,没有提到单元测试——只有仪器测试——但我希望单元测试能够快速得到结果 您不需要Java插件,因为根据我目前看到的情况,Android将满足您的主要需求 我设法通过这个人的博客运行了我的Robolectric和junit测试: 我的build.gradle文件如下所示(其中我的测试文件位于{projectdir}/test目录中)
...
// Unit tests
sourceSets {
unitTest {
java.srcDir file('test')
resources.srcDir file('test/resources')
}
}
dependencies {
unitTestCompile files("$project.buildDir/classes/debug")
unitTestCompile 'junit:junit:4.11'
unitTestCompile 'org.robolectric:robolectric:2.1.1'
unitTestCompile 'com.google.android:android:4.0.1.2'
}
configurations {
unitTestCompile.extendsFrom runtime
unitTestRuntime.extendsFrom unitTestCompile
}
task unitTest(type:Test, dependsOn: assemble) {
description = "run unit tests"
testClassesDir = project.sourceSets.unitTest.output.classesDir
classpath = project.sourceSets.unitTest.runtimeClasspath
}
build.dependsOn unitTest
这本指南可能会有所帮助-
最新等级测试应在androidTest目录下进行
同样在gradle.build中:
dependencies {
androidTestCompile 'junit:junit:4.+'
}
还可以将这些添加到defaultConfig{
testPackageName "test.java.foo"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}AndroidStudio和新的Android Gradle插件现在提供官方的单元测试支持 Android Studio 1.1+和Android Gradle插件版本1.1.0支持此功能+ 依赖项现在可以声明为testCompile:
dependencies {
testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:1.9.5"
}
更多详情如下:。您应该使用此文档
它描述了在开发人员机器上运行的非仪器化单元测试,而不是在android设备上运行的测试。这只是对我有用的:
androidTestCompile 'net.bytebuddy:byte-buddy-android:0.7.8'
谢谢!这与Android Studio结合起来对你有用吗?我很想从IDE运行测试,但这对meI还不起作用。我得到“package Android.test不存在”这应该运行单元测试和编译吗?由于Anroid Build Tools v0.11,类文件的路径已更改。
unitTestCompile文件(“$project.buildDir/intermediates/classes/release”)
@Chris应该改用debug文件夹:unitTestCompile文件($buildDir/intermediates/classes/debug”)
,但要指出这一点很好。请注意,从AS 1.1和Android Gradle插件1.1.0开始,就有官方的单元测试支持。不。如果您的单元测试对Android没有依赖关系或只有简单的依赖关系,您应该在本地开发机器上运行测试。