web-dev-qa-db-ja.com

IntelliJからJUnitテストを実行するときに「クラスが見つかりません」IDEA(Android)

IntelliJIdea内でいくつかのAndroid JUnitテストを実行しようとすると問題が発生します。

私のプロジェクトはAndroid Gradleを使用したライブラリプロジェクトです。テストを実行すると、IntelliJは次のエラーで文句を言います:

Class not found: "com.domain.app.ClassTest"

ただし、ClassTestはテストパッケージ内にあります。

これが私のbuild.gradleです:

apply plugin: 'Android-library'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.10.+'
    }
}

dependencies {
    repositories {
        mavenCentral()
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }

    compile 'com.Android.support:support-v4:19.1.+'

    compile('junit:junit:4.11') {
        exclude module: 'hamcrest-core'
    }
}

Android {
    compileSdkVersion 18
    buildToolsVersion "19.0.3"

    defaultConfig {
        versionName "1.0"
        versionCode 1

        targetSdkVersion 18
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src/main/Java']
            res.srcDirs = ['res']
        }

        androidTest {
            Java.srcDirs = ['src/test/Java']
        }
    }

    lintOptions {
        abortOnError false
    }
}

私のプロジェクト構造:

src
|_ main
   |_ Java
     |_ com.domain.app
|_ test
   |_ Java
      |_ com.domain.app

IntelliJ IDEA 13.1.1を使用しています。

ありがとう。

13

Project Structure -> Modules -> your_module -> Pathsに移動します。

'Output path'の値を入力する必要がありますが、 'Test output path'は入力しません。 「Output path」にあるテキストをコピーし、「テスト出力パス」に貼り付けますが、最後の「build/intermediates/classes/debug」を「build/test-classes」に変更します。これは、gradle Androidテストプラグインが現在、コンパイルされたすべてのテスト出力(すべてのバリアント)を同じディレクトリにダンプするためです。これは、現在、バリアントが完全にサポートされていないことを意味します。

ソース

2
Eugene

古い質問ですが、この問題に遭遇し、答えは次のパスにJUnitテストファイルを保存することであることがわかりました

module-name/ src/test/Java /

ディレクトリがまだ存在しない場合は、ディレクトリを作成して、そこにテストファイルを配置します。

ソース: https://developer.Android.com/training/testing/unit-testing/local-unit-tests

0
Gordon M