6

クラスパスのルート (src/main/resources/) にある application.yml ファイルに構成があります。アプリケーションを正常に起動すると、構成が正常に読み込まれます。ただし、私のテストでは、application.yml ファイルはまったく読み込まれません。

テストのヘッダーは次のようになります。

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(classes = Configuration.class)
@org.junit.Ignore
public class ApplicationIntegrationTest {

   @Inject
   private WebApplicationContext wac;

   private MockMvc mockMvc;

   @Before
   public void setup() {
       this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
   }
...

構成クラス:

@EnableAutoConfiguration
@ComponentScan("c.e.t.s.web, c.e.t.s.service")
public class Configuration extends WebMvcConfigurerAdapter {

アプリケーションをデバッグすると、yml ファイルが ConfigFileApplicationListener に読み込まれますが、テストでは ConfigFileApplicationListener が呼び出されません。

4

2 に答える 2

7

Spring Boot リファレンス ガイドには、テストに関する章全体があります。このセクションでは、Spring Boot アプリケーションの基本的なテストを行う方法について説明します。

@ SpringApplicationConfigurationつまり、Spring Boot を使用してテストを実行する場合は、注釈の代わりに注釈を使用する必要があります@ContextConfiguration。これは、Spring Boot マジックの一部をテスト ケースにも登録/ブートストラップ@SpringApplicationConfigurationする特殊な拡張機能です。@ContextConfiguration

于 2015-08-13T11:32:41.073 に答える
0

StringBoot、jUnit、および YAML の間には適切な統合があります。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(MainBootApplication.class)
public class MyJUnitTests {
    ...
}


@Configuration
@EnableConfigurationProperties
@ConfigurationProperties(prefix = "section1")
public class BeanWithPropertiesFromYML {
    ...
}

詳細については、こちらのコメントを確認してください: https://stackoverflow.com/a/372​​70778/3634283

于 2016-05-17T08:45:41.193 に答える