問題タブ [kotest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - Kotest は gradle の :test タスクを java.lang.IllegalArgumentException: Received a failure event for test with unknown id で中断します
Kotestを使用して、Kotlin で単体テストを開始しています。Kotest と何らかの形で統合する次のテクノロジを使用します。
- コテスト自体
- コトリン/JVM
- グラドル
- アリュール
- ピテスト
- IntelliJ IDEA プラグイン「Kotest」
gradle には、次の依存関係を含めました。
io.kotest:kotest-runner-junit5:$kotest_version
: Kotest フレームワークio.kotest:kotest-assertions-core:$kotest_version
: Kotest コア JVM アサーションio.kotest:kotest-property:$kotest_version
: Kotest プロパティ テストio.kotest:kotest-extensions-allure:$kotest_version
: アリュールのデータ収集io.kotest:kotest-plugins-pitest:$kotest_version
: Pitest用プラグイン
問題は、gradle:test
タスクを介してテストを実行すると、次の例外が発生することです。
java.lang.IllegalArgumentException: Received a failure event for test with unknown id '2.27'. Registered test ids: '[2.1, :test, 2.25]'
未知のID/登録されたIDは、テスト実行ごとに異なります。実際にはたくさんのエラーが表示されますが、それが最後に表示されます。以下は、完全な gradle 出力です (短縮された内部呼び出し)。
関連する可能性があるもの:
1. でカスタム タスク構成を使用しています。build.gradle.kts
私のファイルの次のセクションでは、build.gradle.kts
テスト用の環境をセットアップするタスクと、その後クリーンアップするための 2 番目のタスクを含む、すべてのテスト関連の内容をカバーしています。
2. 最初にエラーを引き起こしたテスト スイート
次の Kotest テスト クラスで作業しているときにエラーが発生しました。より正確には、テスト ファクトリを実装してインクルードしようとした後に発生しました。
すべてのJSONModelXX
クラスは、テストのみを目的としたモデル データ クラスです。すべてのクラスJSONModelMarker
によって実装されるマーカー インターフェイスです。私がテストしようとしているクラスです。JSONModelXX
JSONFile<T>
3. IntelliJ 通知
IntelliJ から常に「すべてのテストが成功しました」という通知が表示されますが、テスト ツール ウィンドウを見ると、gradle タスク:test
が失敗したため、テストは「失敗」とマークされています。これが問題にどのように影響するかはわかりません。
4. 別の例外が発生することもあります
IntelliJ ガター アイコンを使用してテスト スイートで最初のテストのみを実行すると、別の例外が発生しますjava.lang.ExceptionInInitializerError
。私はいくつかの掘り下げを行い、クラスScanner
内の JSON ファイルの内容を読み取るために使用される が、(何らかの理由で) このテストの実行中にのみファイルが空であるため、 をスローすることを発見しました。myの自己定義タスクが実際に各ファイルにいくつかの内容を書き込み、実行後にファイルを見るとそれらの内容が実際に存在するため、これはかなり奇妙です。完全なコンソール出力は次のとおりです。JSONFile<T>
NoSuchElementException
:preTest
build.gradle.kts
:preTest
:test
これが問題の一部なのか別の問題なのかはわかりませんが、念のためにここに含めておきます。[ファイル] -> [設定] -> [ビルド、実行、デプロイ] -> [ビルド ツール] -> [Gradle] でテスト ランナーを IntelliJ IDEA に切り替えると、同じ問題が発生します。
それでおしまい!私の質問は次のとおりです。このエラーの原因は何ですか?どうすれば修正できますか?
で実行
- コトリン/JVM 1.4.10
- kotest-runner-junit5 4.3.1
- kotest アサーション コア 4.3.1
- kotest-プロパティ 4.3.1
- kotest-extensions-alure 4.3.1
- kotest-plugins-pitest 4.3.1
- グラドル6.7
- アリュール 2.13.6
- アリュール gradle プラグイン 2.8.1
- ピテスト gradle プラグイン 1.5.1
- intellij IDEA Ultimate 2020.2
- kotest IntelliJ プラグイン 1.1.20-IC-2020.2
- openJDK 11.0.2
kotest - 同じ kotest テストを何度も実行する簡単な方法は?
kotest フレームワークを使用して、同じテストと同じスイートまたはクラスを n 回連続して実行する最も簡単な方法は何ですか?