問題タブ [junit5]
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.
java - assertAll と JUnit5 の複数のアサーション
複数のアサーションをグループ化する理由はありますか:
これを行う代わりに:
gradle - JUnit5 タグ固有の gradle タスク
次の注釈を使用して、統合テストにタグを付けます。
これは、build.gradle
これらのテストを から除外するために使用するフィルターgradle build
です。
ここまでは順調ですね。
ここで、具体的に統合テストを実行する Gradle タスクを提供したいと思います。推奨されるアプローチは何ですか?
java - JUnit5でMockitoを使用する方法
Mockito と JUnit 5 でインジェクションを使用するにはどうすればよいですか?
@RunWith(MockitoJUnitRunner.class)
JUnit4 では、アノテーションを使用するだけです。JUnit5には@RunWith
注釈はありませんか?
java - JUnit で、テスト メソッドを「固有のメソッドに解決できませんでした」と表示される
IntelliJ IDEA で JUnit 5 を学習しようとしています。テスト クラスを作成し、1 つのメソッドをテストしようとしました。メッセージは次のとおりです (3 行目を参照)。
メソッドを解決できない理由がわかりません: コンパイルされ、間違いなく存在します:
そして、私はこれを定義しました:
更新: IntelliJ IDEA を終了して再起動すると、インポートされたシンボル「junit」を解決できないというメッセージと、さまざまな注釈「@beforeEach」、「afterEach」、「Test」が表示されます。
更新 2: テスト クラスで欠落しているセミコロンを見つけて修正しましたが、変更はありません。注: テストしていないクラスの一部にコンパイル エラーがありますが、テストの実行構成を「ビルド、エラー チェックなし」に設定しています。これは正しいですか?JUnit 4 を使用して (別のクラス名で) 同じテストを作成しようとしましたが、それも機能しません。
エラー メッセージの最初の数行を次に示します。
junit5 - junit5 のタグに基づいてアサーションを作成する方法はありますか?
いくつかのカスタム注釈に基づいてテスト ポリシーを適用する JUnit 4 に基づくテスト システムがあります。特に、メソッドに注釈を付けて、テスト システムにタイムアウトとそれらのメソッドからのリソース アクセスを強制させることができます。
たとえば、@Medium のアノテーションが付けられたテストは 60 秒以内に完了する必要があり、ネットワークにアクセスできません。
カスタム アノテーションのないテストは「小規模」テストに分類され、10 秒以内に完了する必要があり、ネットワークやファイル システムにアクセスできません (たとえば、単体テストが実際に単体テストであることを確認します)。
また、テスト システムは、中規模のテストを試みる前に、すべての小規模なテストに合格することを保証します。大規模なテストなどを試みる前に、すべての中規模のテストに合格する必要があります。
これを JUnit 4 の上に実装するのはかなり簡単で、システムのいくつかの重要な部分をカスタマイズするだけで済みました。
これを JUnit 5 に移行することを検討していますが、これを行う良い方法があるかどうかを知りたいと思っていました。新しい発見とフィルタリングのメカニズムは、テストの順序付けを本当に簡素化しますが、ランナーを削除すると、テストのサイズ設定ポリシーを適用する方法がわかりません.
注: テスト システムの知識なしに記述されたテストには小さなテスト ポリシーが適用されていることを確認する必要があるため、テスト自体にポリシーを適用しても機能しません。
カスタム テスト エンジンを作成できると思いますが、それは少しやり過ぎかもしれません。
java - Maven を使用して Junit5 テストを実行できない
Mavenの実行
Maven プロジェクトの 1 つに使用しようとしていますが、フェーズjunit5
中に単体テストを実行できません-test
私が得る出力は -
上記のソリューションを実装しようとしました @ Surefire は依存関係を更新するためにJunit 5 テストを取得していません-
プラグインを次のように更新します -
しかし、出力は同じままです。
質問- このカスタム プロバイダーはサポートされなくなりましたか、または を使用してテストを実行するための解決策はありmaven
ますjunit5
かjunit5-api
?
注- テストの実行は、JUnit-4 で正常に機能していました。
java - junitPlatform 使用時のシステム プロパティの設定
Gradle を使用して JUnit 5 テストを実行するときに、システム プロパティを設定する方法がわかりませんでした。標準test
タスクは次のように構成できます。
ただし、junitPlatform
タスクにはそのようなオプションがないようです。
java - LauncherDiscoveryRequest を介して提供されたクラスパスでテストを検出する
ユーザー ガイドに記載されているように、LauncherDiscoveryRequest
の助けを借りて JUnit 5 テストを検出しようとしています。私が使用しているコードは次のようになります。
LauncherDiscoveryRequestBuilder
このコードを実行している JVM のクラスパスでのみテストを自動検出しますか? テストクラスを検索するルートディレクトリを提供するために、メソッドDiscoverySelectors.selectClasspathRoots
とセレクターを使用してみました。DiscoverySelectors.selectClasspathResource
ただし、テストを発見することはできませんでした。のパラメーターはselectClasspathRoots
、selectClasspathResource
パッケージごとに編成されたクラス ファイルを含むルート ディレクトリを指す必要がありますか?それとも、各テスト クラス ファイルへのフル パスを指定しますか?
/some/dir
テストクラスファイルを含むルートディレクトリを表す次のことを試しました:
私は見ましLauncherDiscoveryRequestBuilderTests.java
たが、サンプルコードが機能しない理由を理解するのにあまり役に立ちませんでした. 問題を最もよく診断するにはどうすればよいですか?
次の依存関係を使用しています。
org.junit.platform:junit-platform-engine:1.0.0-M3
org.junit.platform:junit-platform-launcher:1.0.0-M3