web-dev-qa-db-ja.com

クラスが見つかりません:Android St​​udioでユニットテストを実行すると、テストスイートが空になります

Androidアプリ用のテストスイートがあり、すべてのユニットテストが正常に実行されます。ただし、単体テストクラスの1つ(たとえば、ModelUnitTests)で1つの変更を行うたびに、そのクラスを再度実行しようとすると、このメッセージが表示されます

Process finished with exit code 1
Class not found: "xxx.xxxxxx.xxx.ModelUnitTests"Empty test suite.

Gradle cleanを実行してからクラステストを再度実行すると、正常に実行されます(ただし、実行に4分かかります...)が、新しい変更により再び中断されます。

これを修正する方法に関するアドバイスはありますか?どのテスト構成を投稿する必要があるのか​​正確にはわかりません。ユニットテストアーティファクトを使用しており、テストはmodule/src/test/packageフォルダーにあります

57
Koitt

私は同様の問題を抱えていましたが、それは最初に同じクラス名で単体テストを作成しただったからです。 Instrumented Unit Testを作成したときにエラーが発生しました。

それを解決するために、実行アイコンの左側にある[構成の編集]に移動しました。それからnit Testの下で、それは'conflicting'クラスでしたI deleted。 [適用/ OK]をクリックします。次に、クラス名を右クリックし、実行をクリックすると、機能します。

65
RobertoAllende

同じ問題がありました。テスト中のメソッドが、実行/デバッグ構成ドロップダウンに次のように表示されていることに気付きました。
TestClassName.testMethod()
正しいというより:
testMethod()

このエラーを発生させていたテストメソッドのTestClass.testMethod()実行/デバッグ構成を削除し、テストを再実行することで修正しました。

同じ問題が再現される場合は、誤った実行/デバッグ構成を削除してから、テストメソッドを右クリックして次を選択します。
Create 'testMethod()'...
(実行またはデバッグではなく)作業構成を作成します。

14
Edmund Johnson

ちょうどこれに遭遇しました-Kotlinで私の単体テストを書いています。私の場合、特定のモジュールbuild.gradleファイルにkotlinプラグインを追加するのを忘れていました。

apply plugin: 'kotlin-Android'
11
estn

Android St​​udioの修正は次のとおりです。

  • ステップ1.-実行/デバッグ構成に移動
  • ステップ2.- Android Testsセクションに移動します
  • ステップ3.-(-)でテスト構成ファイルを削除します
  • ステップ4.-適用を押してOK
  • ステップ5.-テストを再度実行します

私はこの問題を抱えていましたが、この投稿(または他の非常に目立つStack Overflow投稿)の答えのどれも私のためにそれを解決しませんでした。
ただし、gradleタスクを手動で実行するとcompileTestKotlinが問題を解決したようです。

これはKotlinテスト用でした、Android St​​udio 3.1.2

5
Squimon

チームで作業している場合は、すべてのbuild.gradleファイルをチェックして、誰もテストタスクを無効にしていないことを確認してください。 「空のテストスイート」エラーが発生しましたが、最終的にはプロジェクトルートのbuild.gradleにある次のエラーが原因であることがわかりました。

gradle.taskGraph.whenReady {
    tasks.each { task ->
        if (task.name.contains("Test"))
        {
            task.enabled = false
        }
    }
}
2

Robolectricを使用する場合、実行構成で作業ディレクトリを$ MODULE_DIR $ enter image description here

VMオプションも設定します:-eaまたは:-noverify

http://robolectric.org/getting-started/

2
UmAnusorn

AS 3.3で私に起こりました。

私はフレーバーを使用していますが、これはsrc/mainsrc/testのみを持つモジュールで発生しました。アプリモジュールにはsrc/mainsrc/commonおよびsrc/flavorがあります。 ASで選択されたビルドタイプはflavorDebugでした。

それを修正するために、「実行構成」に行き、「モジュールのクラスパスを使用」ドロップダウンでアプリモジュールが選択されました。テストしたいモジュールを選択してください!

0
tricknology

今日、テストクラスの1つでこの問題が発生しましたが、ここで解決する方法はありませんでした。ただし、異なるテストクラスを実行するだけで修正されました。その後、元の問題のあるクラスが正しく実行されました。

0
ajh3