Android Studio(3.2 Canary 9まで)のスタジオでKotlinで記述されたエスプレッソテストを実行しようとすると、次のエラーが発生します:プロセスが終了コード1で終了しましたクラスが見つかりません: "com。 myproject.directoryofwinning.VerifyAppIsAwesomeTest "空のテストスイート。
不思議なことに、Java同じプロジェクトでのテストに問題はありません。
設定をリセットしようとし、他の人から提案されましたが、これは何の違いもないようです。
結局、クラス名の最後に「テスト」が追加されていることがわかりました。 Word Testをクラス名の前に移動するか、すべて一緒に省略すると、問題が解決します。
Android Studio 3.1.1を使用している場合、おそらくRun = Debug設定が正しくありません。おそらくAndroid Studio 。最終的に、「Android Instrumented Tests」ではなく、「Android JUnit」configsの下にインストゥルメントテスト構成が配置されました。特定のクラスの新しいインストゥルメントテスト構成の作成が機能しました。
また、モジュールの[すべてのテストを実行]オプションを右クリックしたときに作成されたデフォルトの構成が、インストルメント化されたテストを見つけて正しく実行できず、結果として
0 test classes found in package '<default package>'
Process finished with exit code 254
Empty test suite.
Android JUnitの下に作成されたデフォルトの構成として。ただし、インストルメント化されたテストを含むパッケージを右クリックすると、適切なカテゴリに作成されます。手動で「モジュール内のすべて」に編集することもできます。 'そして、私のkotlinテストを適切に実行します。
余談ですが、私はIDE以前に次の誤解を招くような出力をしてくれました:
$ adb Shell am instrument -w -r -e package com.base.package.kotlintests -e debug false com.base.package.test/Android.support.test.runner.AndroidJUnitRunner
Client not ready yet..
Started running tests
Tests ran to completion.
Empty test suite.
なぜ私がテストを持っているのか、なぜ空のテストスイートがあると言ったのですか?ログを見るか、ターミナルでadb
コマンドを実行すると、私のコードが@BeforeClass
のセットアップで例外をスローしていることがわかりました!したがって、テストは実行されず、すべてが簡単に完了しました。
これを理解するのに数回の試行が必要でしたが、kotlinを有効にするために必要なGradleの変更がないことが原因でした。
....
apply plugin: 'kotlin-Android'
Android {
....
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.21"
....
}
プロジェクトの再構築、[ファイル]> [キャッシュの無効化/再起動...]、app\buildフォルダーの削除、プロセスからのadb
の削除、エミュレーターの再起動。