私はテスト(junitとrobolectric)をAndroidプロジェクトで動作させようとしていますが、完全に立ち往生しています。私の主な問題は、gradleで見つけたすべてのテストが何らかの形でJavaプラグインを使用すると、このエラーが発生します。
The 'Java' plugin has been applied, but it is not compatible with the Android plugins.
現時点で私が見る唯一の方法は、テストプロジェクトとアプリプロジェクトに分割することですが、それは避けたいと思います。どんな例/ヒントでも大歓迎です!
公式ドキュメント では、単体テストについては言及していません-インストルメンテーションテストのみです-しかし、単体テストで結果をすばやく取得したいのです。
Javaプラグインは必要ありません。なぜなら、Androidは、これまで見てきたことから、ほとんど必要なものを処理してくれるからです。
この男のブログでRobolectricとjunitのテストを実行することができました: http://tryge.com/2013/02/28/Android-gradle-build/
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
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 Tools Project Site 。
このガイドが役立つ場合があります- http://www.slideshare.net/tobiaspreuss/how-to-setup-unit-testing-in-Android-studio
テストがandroidTest dirの下にある必要がある最新のgradle
Gradle.buildでも:
dependencies {
androidTestCompile 'junit:junit:4.+'
}
defaultConfig{
testPackageName "test.Java.foo"
testInstrumentationRunner "Android.test.InstrumentationTestRunner"
}
このドキュメントを使用する必要があります https://developer.Android.com/training/testing/unit-testing/local-unit-tests.html Androidデバイスではなく、開発者のマシンで実行される非計測ユニットテスト。
これは私だけのために働いたものです:
androidTestCompile 'net.bytebuddy:byte-buddy-Android:0.7.8'