問題タブ [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 に答える
961 参照

kotlin - kotlin マルチプラットフォーム モジュールで io.kotest:kotest-runner-junit5-jvm:4.1.1 を解決できませんでした

複数のモジュールを含むプロジェクトがあります。モジュールの 1 つは kotlin multiplatform です。Kotest 4.1.1 を使用して単体テストを追加しようとしています。このリリースはリポジトリ mavenCentral() で公開されており、Java ライブラリ プラグインを使用しているモジュールでこのリリースを問題なく使用できます。ただし、マルチプラットフォーム モジュールで Kotest 4.1.1 を使用している場合、同期を試みるたびに失敗します。

なぜこれが起こっているのかわかりません。通常の kotlin jvm プラグインを使用する同じプロジェクト内の別のモジュールと kotest の同じリリースは問題なく同期できるため、このエラーは明らかに kotlin マルチプラットフォーム プラグインを使用するモジュールに固有のものです。したがって、gradle は、定義されたリポジトリでリリースを見つけ、kotest 4.1.1 を使用することができます。

結果として (当然のことですが)、kotest は multiplatform モジュールの commonTest のテスト クラスパスにないため、単体テスト クラスは io.kotest.xxx パッケージをインポートできません。

マルチプラットフォーム コードをテストするために、JVM 実行の単体テスト (junit5 を使用) で kotest を使用したいと考えていました。しかし、これはマルチプラットフォームを行う最初の試みなので、すべてが疑わしいです:-)

以下のスニペットは、マルチプラットフォーム モジュールの build.gradle.kts からの sourceSets コードです。コメント部分をそのままにしておくと、gradle は正常に同期しますが、commonTest のソースにはもちろん kotest が表示されません。コメントを削除すると、エラーが発生します

両方のモジュールで使用される Kotest.framework val の値は次のとおりです。

Android Studio で kotlin マルチプラットフォーム プラグインを使用しているときに kotest 4.1.1 を動作させた人はいますか? これをさらに診断する方法についてのアイデアをいただければ幸いです。前もって感謝します...

構成: Android スタジオ 4.0 Gradle 6.5.1 Kotlin 1.3.72

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

kotest - 複数のアサーション (assertAll) - Kotest

Kotest で複数のアサーションを DSL スタイルでチェックする方法はありますか? JUnit の Assertions.assertAll メソッドを使用しませんか?

のようなものを書くことができますか

それ以外の

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

java - テスト間で micronaut のスケジュールされたジョブを停止する方法はありますか?

プロパティに基づいてジョブを動的にスケジュールするアプリケーションがあります。ServiceReadyEvent をリッスンしてから、ジョブをスケジュールします。以下は、ファクトリを介してコンテキストに追加される小さな例です。

このコードをテストするために、kotest を使用して Micronaut テストを行いました。

他の仕事の二次試験もあります

私の問題は、2 番目のテスト中に、2 番目のテストの実行中に最初のジョブがまだスケジュールされていることを確認することです。

ジョブの実行を除いて、テストの最初の実行に関する他のすべてが停止しました。ジョブの実行中に HttpClient が閉じられたために例外がスローされるため、まだ実行されていることがわかりました。

私はもう試した

  • テスト間のテスト コンテキストの再構築rebuildContext = true
  • クラスでスケジュールされた先物を追跡JobsLoaderし、関数でそれらをキャンセルしafterSpecます。先物のリストは、私がそれらをキャンセルするまでには常に空です。
  • TaskScheduler および ExecutorService Bean を手動で更新する

テストはすべて問題なくパスしますが、例外が散らばっています。特に、ますます多くのジョブをテストするようになり、テストしているジョブ以外はすべて失敗し続けています。これが kotest、micronaut テスト、スケジューラ、いくつかの組み合わせ、またはまったく別の問題であるかどうかはわかりません (vertx ログも表示されますが、それは問題ではないと思います)。次のテストを実行する前に、これらのジョブ/スレッドを強制終了する方法を見つけ出す必要があります。

どんな助けやアイデアも大歓迎です!