問題タブ [springjunit4classrunner]
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.
spring - SpringJUnit4ClassRunner がテスト後に DisposableBean.destroy を確実に呼び出せないことはまだ本当ですか?
によると: https://jira.spring.io/browse/SPR-4103 SpringJUnit4ClassRunner は、テスト後に必ず DisposableBean.destroy を呼び出すとは限りません (*facepalm*!) -- JUnit の実装上の問題が原因です。
これはまだ本当ですか?
次のようにscalaでテストを作成しています:
Service2Test の実行時に、Service1Config の Bean の destroy メソッドが破棄されないことがわかりました。
@After を追加してコンテキストを明示的にシャットダウンすることを推奨する多くの記事を見つけました。これは、エラーが発生するのを待っているように聞こえます (1 つのテストで @After クリーンアップを追加するのを忘れると、次のテスト クラスが失敗し、その理由がわからないため)。
これでも SpringJUnit4ClassRunner/JUnit で実行できない場合、各テストの後にコンテキストのクリーンアップを自動的に呼び出すテスト フレームワークはありますか?
spring - Spring テストで @EnableScheduling を無効にする
単体テストを実行すると、スケジュールされたタスクが呼び出されます。この動作を防ぎたいのですが、これは@EnableScheduling
メインのアプリ構成にあるという事実が原因です。
単体テストでこれを無効にするにはどうすればよいですか?
プロファイルの設定を提案する この質問/回答に出くわしましたか?
どうすればいいかわからない?またはそのやり過ぎの場合は?単体テスト用に別の AppConfiguration を用意することを考えていましたが、それを行うとコードを 2 回繰り返すように感じますか?
単体テストの例。
unit-testing - SpringJUnit4ClassRunner - 同じコンテキストが使用されていても、すべてのテストのコンテキストをリロードします
これは、単体テストの基本クラスです。
すべての単体テストは、このクラスを拡張します。
Eclipse でテストをローカルで実行すると (Run As > Unit Test を使用)、テストは約 5 秒で実行されます。これは、同じコンテキストがすべてのテストで共有され、一度だけ読み込まれるためです。
ただし、mvn テスト ターゲットを使用して実行すると、約 5 分かかります。ログを見ると、すべてのテストでアプリケーション コンテキストが読み込まれていることがわかります。Jenkins CI サーバーで実行した場合と同じ時間 (5 分) かかります。
何が起こっているのかわからない。春のドキュメントでは、appContext は maven でも再利用する必要があると述べていますが、ここではそうではありません。
どんな助けでも大歓迎です。
更新: デバッグ フラグをオンにして mvn を実行したところ、テストごとに新しい JVM が生成されていることがわかります。
フォーク コマンド ライン: cmd.exe /X /C "java -Xverify:none -jar S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefirebooter8169952914558366417.jar S:\git\picaxo21\picaxo\picaxoService\target\ Surefire\surefire8550033206398936560tmp S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefire_05655453605766528120tmp"
フォークコマンドライン: cmd.exe /X /C "java -Xverify:none -jar S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefirebooter400202447779069323.jar S:\git\picaxo21\picaxo\picaxoService\target\ Surefire\surefire6735432532690834115tmp S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefire_17783676008756503456tmp"
フォーク コマンド ライン: cmd.exe /X /C "java -Xverify:none -jar S:\git\picaxo21\picaxo\picaxoService\target\surefire\ 7874269889863176184.jar S:\git\picaxo21\picaxo\picaxoService\target\ Surefire\surefire2050758518148174678tmp S:\git\picaxo21\picaxo\picaxoService\target\surefire\surefire_27591156970671336255tmp"
forkCount=1 と reuseForks=true を使用しているため、なぜこれが起こっているのかわかりません。手がかりはありますか?
親 POM :
java - ログが印刷されない
私は現在、春を使用したプロジェクトに取り組んでいます。Junit の場合、@RunWith(SpringJUnit4ClassRunner.class) アノテーションを使用しています。applicationContext のスプリング処理のログが表示されないことを除いて、すべて正常に動作しています。コンソール ウィンドウでは、これが現在のメッセージです。
log4j.properties を Eclipse の src/main/resources フォルダーに保存しました (maven プロジェクトを使用)。内容は次のとおりです。
Log4j.プロパティ;
同様の問題に関してすでに提起された Q/A を確認しました。しかし、何が問題なのかについてはまだ手がかりがありません。ここで誰か助けてくれませんか?
ありがとう
spring - SpringJUnit4ClassRunner.withAfterClasses メソッドで不可解な MultipleFailureException エラー メッセージが表示される理由
以下のあまり役に立たないエラー メッセージが表示されて、スプリング テストのセットアップが失敗するのはなぜですか? すべての提案を歓迎します。
JUnit 出力
コンソール出力
カスタム リスナー クラスを指定するか、デフォルトのリスナー クラス (および必要な依存関係) を使用できるようにします。問題のあるクラス: [org/springframework/transaction/interceptor/TransactionAttribute] INFO: org.springframework.test.context.support.DefaultTestContextBootstrapper - TestExecutionListener [org.springframework.test.context.transaction.TransactionalTestExecutionListener] をインスタンス化できませんでした。カスタム リスナー クラスを指定するか、デフォルトのリスナー クラス (および必要な依存関係) を使用できるようにします。問題のクラス: [org/springframework/transaction/interceptor/TransactionAttributeSource] INFO: org.springframework.test.context.support.DefaultTestContextBootstrapper - TestExecutionListeners の使用: [org.springframework.test.context.web.ServletTestExecutionListener@76959acc, org.springframework.テスト.コンテキスト.サポート.
ここにターゲットスニペットがあります
そしてテストスニペット
gradle - Gradle JUnit テスト実行時の「Address already in use: bind」例外
RESTful サービスに Spring Boot 1.2.1.RELEASE、JUnit4、および Gradle 2.1 を使用しており、JUnit テストでのみ使用される値を含むおよび/またはオーバーライドするプロパティ ファイルを定義しようとしています。JUnit テストとして呼び出された場合、すべてのテストは問題なく実行されます。ただし、これらの同じテストがgradleの「ビルド」または「テスト」タスク中に実行されると、「原因: java.lang.IllegalStateException: Tomcatコネクタが失敗した状態です」という例外で失敗し、根本的な原因は「java.net」です。 .BindException: アドレスは既に使用されています: bind".
実行するためにアプリケーション コンテキストを必要とする複数のテスト クラスがあります。
プロパティ ファイルを介して代替値を容易にするために、TestPropertySource() を含めました。
これを機能させるために必要な追加の Gradle 構成はありますか?
ControllerTest クラス
application.properties (/src/main/resources)
application-junit.properties (/src/test/resources)
build.gradle
スタックトレース:
java - JUnit4ClassRunner と JUnitParams の両方で @RunWith を使用するにはどうすればよいですか?
パラメータ化されたテストである統合テストを書いています。@RunWith(SpringJUnit4ClassRunner.class) と @RunWith(JUnitParamsRunner.class) を含める必要があります。問題は、@RunWith を 1 つしか指定できないことです。この問題の回避策はありますか?
java - インポート org.springframework.test.context.junit4.SpringJUnit4ClassRunner を解決できません
私はSpringの初心者であり、これはStackOverflowに関する最初の質問でもあるため、できるだけ理解しやすいように努めます.
このチュートリアルで、Spring と Maven を使用して Web サービス クライアントを作成しようとしていますが、次のエラーが表示されます: The import org.springframework.test.context.junit4 cannot be resolve.
これが私のコードです:
pom.xml
あなたがそれを必要とする場合に備えて、これが私のものです。
StackOverflow で他のソリューションをいくつか試しましたが、うまくいきません。
ありがとう。