問題タブ [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.

0 投票する
1 に答える
811 参照

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によって実装されるマーカー インターフェイスです。私がテストしようとしているクラスです。JSONModelXXJSONFile<T>

3. IntelliJ 通知

IntelliJ から常に「すべてのテストが成功しました」という通知が表示されますが、テスト ツール ウィンドウを見ると、gradle タスク:testが失敗したため、テストは「失敗」とマークされています。これが問題にどのように影響するかはわかりません。

4. 別の例外が発生することもあります

IntelliJ ガター アイコンを使用してテスト スイートで最初のテストのみを実行すると、別の例外が発生しますjava.lang.ExceptionInInitializerError。私はいくつかの掘り下げを行い、クラスScanner内の JSON ファイルの内容を読み取るために使用される が、(何らかの理由で) このテストの実行中にのみファイルが空であるため、 をスローすることを発見しました。myの自己定義タスクが実際に各ファイルにいくつかの内容を書き込み、実行後にファイルを見るとそれらの内容が実際に存在するためこれはかなり奇妙です。完全なコンソール出力は次のとおりです。JSONFile<T>NoSuchElementException :preTestbuild.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
0 投票する
1 に答える
232 参照

kotest - 同じ kotest テストを何度も実行する簡単な方法は?

kotest フレームワークを使用して、同じテストと同じスイートまたはクラスを n 回連続して実行する最も簡単な方法は何ですか?