問題タブ [spring-boot-test]
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 - SpringBootTest 構成で無視される Bean
次の構造があります。
メイン構成クラス。
そして、2 つの別個の構成クラス。
テストは次のとおりです。
この構造では、BeanEtcDao
とのテスト定義SomeBean
は無視され、これらの Bean のメイン コンテキスト定義が使用されます (からMainApplication.class
)。@SpringBootTest
しかし、これらの個別の構成をlikeに含めると、@SpringBootTest(classes = {ConfigA.class, ConfigB.class})
適切に機能します。@Include
これらの個々の構成クラスの Bean を初期化できませんか? MainApplication.class
または、犯人はそれらと一緒に含めることですが、そこから他の構成が必要なので、この方法で実装する必要がありました。
java - データソース構成を埋め込まずに春のブートテスト中に「schema.sql」を実行するにはどうすればよいですか?
プライマリ データベースとして使用される h2 データベースを備えたスプリング ブート アプリケーションがあります。また、resource/schema.sql
Spring Boot による起動時に読み込まれるものもあります。
@SpringBootTest
ただし、 Spring Bootとの統合テスト中は、これをロードしませんschema.sql
。h2
代わりに、既に dbがある間に組み込みデータベースをセットアップする必要があります。
schema.sql
データソース構成を埋め込まずに実行する方法はありますか? また、すべてのテストに対して 1 回だけ実行しますか (たとえば、@Sql
すべてのテストのスキーマ作成に使用することは解決策ではありません)。
spring - JUnit テストでの @SpringBootApplication アノテーションの効果
スプリング ブートの非 Web アプリケーションがあります。
うまく機能するアプリケーションの統合テストをいくつか追加しました。
メイン クラスには の注釈が付けられ@SpringBootApplication
、統合テスト クラスには@RunWith(SpringRunner.class)
andの注釈が付けられてい@SpringBootTest
ます。
メイン クラスのアノテーションを@Configuration
and @ComponentScan
andに変更@EnableAutoConfiguration
してより明示的にすると、テスト クラスは、使用されているクラスの 1 つを検出できないというコンパイル時エラーを表示し、さらに情報を追加するように強制します。
したがって、注釈を以下のように変更する必要が@RunWith(SpringRunner.class)
あり@SpringBootTest(classes = EligibilityJobRunner.class)
ます。
@SpringBootApplication
上記の3つの注釈の便利な注釈であると読んだことがありますが、なぜこの違いがあるのでしょうか? どうもありがとう。