web-dev-qa-db-ja.com

MacOSxでGradleを使用してコンパイルする簡単なJunitテストを1つ取得する

私は(テスト付きの)最も基本的なグラドルプロジェクトをビルドしようとしています。関連するすべての質問とGoogle検索を見てきましたが、非常に基本的なものを見逃しているようです。

1つのテストクラスを作成しましたが、「gradle compileTestJava」はファイルのコンパイルに失敗しました

パッケージorg.junitは存在しません

テストを見つけ、それがテストであることを知っていますが、独自のjunit.jarファイルを見つけられないようです。

build.gradleに含まれるもの

プラグインの適用:「Java」

それだけです。裸の骨!私も追加してみました

依存関係{

testCompile 'junit:junit:4.10'

}

これにより、「すべての依存関係を解決できませんでした」というメッセージが表示され、gradleが独自のファイル(?)を回避できなくなったと思われます。 gradleにインストールされた/Users/me/Documents/Projects/gradle-1.3/lib/plugins/junit-4.10.jarファイルが表示されます。

実際、「gradledependency」を実行すると、次のようになります

testCompile - Classpath for compiling the test sources.
No dependencies

それに組み込みのプラグイン依存関係が含まれるかどうかはわかりません。私の推測では、junitをリストする必要があります。

何か案は?

私が得るものは次のとおりです。

:compileTestJava

/Users/me/Documents/Projects/experiment1/src/test/Java/MyUnitTests.Java:3: package org.junit does not exist
import org.junit.*;
       ^
/Users/me/Documents/Projects/experiment1/src/test/Java/MyUnitTests.Java:7: cannot find symbol
symbol  : class Test
location: class test.Java.MyUnitTests
    @Test
     ^
/Users/me/Documents/Projects/experiment1/src/test/Java/MyUnitTests.Java:9: cannot find symbol
symbol  : variable Assert
location: class test.Java.MyUnitTests
            Assert.assertEquals(2 + 2, 4);
            ^
3 errors
 FAILED

FAILURE: Build failed with an exception.
28
Rob Myers

リポジトリが設定されていることを確認し、junitの依存関係を含める必要があります。つまり、build.gradleには次のようなものが必要です。

repositories {
    mavenCentral()
}

apply plugin: 'Java'

dependencies {
    testCompile 'junit:junit:4.10'
}
16
Alpine

私のbuild.gradleにはこれがありました:

Android {
sourceSets { main { Java.srcDirs = ['src/main/Java', 'src/test/Java'] } }

そしてまた

dependencies {
testCompile 'junit:junit:4.12'}

Build.gradleから次のものを削除すると、問題はなくなりました

'src/test/Java'

6
ericharlow

このガイドが役立つ場合があります- http://www.slideshare.net/tobiaspreuss/how-to-setup-unit-testing-in-Android-studio

テストがandroidTest dirの下にある必要がある最新のgradle

Gradle.buildでも:

dependencies {
     androidTestCompile 'junit:junit:4.+'
}

defaultConfigの下にも追加します

defaultConfig {

    testPackageName "test.Java.foo"
    testInstrumentationRunner "Android.test.InstrumentationTestRunner"

}
4
Gal Bracha

リポジトリ宣言でmavenLocal()も必要になる場合があります

repositories {
  mavenLocal()
  mavenCentral()
}
2
Faktor 10

テストケースで同様の問題が発生し、同様のエラーが発生しました。 build.gradleファイルにソースセットを追加することで修正できます。

例えば:

sourceSets {
src {
   test{
      Java{
    srcDirs =["com/testfile/appservice/test/endpoint"]
    }
      }
}

}

src/test/Javaはテストパッケージのすぐ上のディレクトリの名前で、com.testfile.appservice.test.endpointはjunitテストが書き込まれるパッケージの名前です。

0
Kabiraj Kharel

追加するだけ

repositories {
    mavenCentral()
}

Android Studio for Android development

0
Sandeep Tengale