4

マルチモジュール Android プロジェクトでは、他の Android ライブラリとアプリケーションが依存するプレーンな Java プロジェクトがあります。最近、プロジェクト全体を移行して、Gradle を使用してビルドしました。

Android Studio でのみ、プレーン Java プロジェクトの junit テストの実行に問題があります。コマンドラインでは、テストは正常に実行されています。

./gradlew -p the-java-proj test

これにより、単体テストが期待どおりに実行されAssert.fail()ます。サニティ チェックとして a を挿入すると、予期されるエラーが正しく発生します。

ただし、Android Studio で単体テストを実行することはできません。パッケージ内のすべてのテストを実行する実行構成を作成しましたが、実行時に次のエラーが発生します。

MYTESTNAME の実行中にエラーが発生しました: モジュール 'MYMODULENAME' ランタイム スコープに junit.jar がありません

最後の「ランタイム スコープ」は怪しいですが、それをどうすればいいのかわかりません。build.gradleプロジェクトの内容は次のとおりです。

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    testCompile 'junit:junit:4.11'
    testCompile 'org.mockito:mockito-all:1.9.5'
}

Gradle に移行する前に Android Studio で単体テストを正常に実行できたため、これは特に不可解です。今だけ私はそのような問題を抱えています。また、個々の単体テストを実行するためのわかりやすいコンテキスト メニュー オプションも表示されません。そして、私が覚えている限りでは、現在のファイルで単体テストを実行するためのキーボード ショートカットは以前は機能していましたが、現在は実行構成の選択ツールがポップアップするだけで、新しいファイルを追加するオプションはありません。

4

2 に答える 2

3

Java プロジェクトを Android プロジェクトにアタッチすると、メイン プロジェクトからテストを実行すると、Java ライブラリ プロジェクトでテストが実行されません。ライブラリ プロジェクトの jar を作成するだけです。そのため、テスト タスクを実行するように明示的に指示する必要があります。

apply plugin: 'java'

repositories {
mavenCentral()
}

dependencies {
   testCompile 'junit:junit:4.11'
   testCompile 'org.mockito:mockito-all:1.9.5'
}

jar.dependsOn test
于 2013-12-27T04:20:20.437 に答える
1

この記事から: https://coderwall.com/p/ybds4w ( @GalBenHaimに感謝)

ただし、POJO テスト専用または一般的なフレームワークを使用するために JUnit を使用する必要がある場合、Android Studio にはまだ統合サポートがありません。

つまり、私がこれを書いている時点では、Android Studio はこれを行うことができず、POJO で JUnit テストを実行することはできません。コマンド ラインでは問題なく動作します ( ./gradlew test)。

于 2013-12-22T11:06:38.127 に答える