Тестовые профили Spring: как загрузить только связанные ресурсы контекстного теста - PullRequest
0 голосов
/ 28 сентября 2018

Это мой application.properties файл:

spring.data.mongodb.host: localhost
spring.data.mongodb.port: 27017

spring.datasource.url: jdbc:postgresql://localhost:5432/frontoffice
spring.datasource.username: frontoffice
spring.datasource.password: password
spring.datasource.driverClassName: org.postgresql.Driver

application.defaultLanguage: ca_ES

И это мой тест:

@RunWith(SpringRunner.class)
@SpringBootTest()
public class GridFSTest {

    @Autowired
    private GridFsTemplate gridFsTemplate;

    @Test
    public void storeFile() throws IOException {
        Path path = Paths.get(TestResources.CompatibleMatch.CSV_DOCUMENT.getPath());
        InputStream is = Files.newInputStream(path);

        this.gridFsTemplate.store(
          is,
          path.getFileName().toString(),
          "text/plain",
          null
        );
    }

    @Test
    public void getFile() {
        Path path = Paths.get(
          TestResources.CompatibleMatch.CSV_DOCUMENT.getPath()
        );

        GridFSFile gridFsFile = this.gridFsTemplate.findOne(
          Query.query(
            Criteria
              .where("filename")
              .is(path.getFileName().toString())
            )
          );
        assertEquals(path.getFileName().toString(), gridFsFile.getFilename());
    }

}

Как видите, я тестирую только spring-data-mongodb связанные классы.

Дело в том, что когда я запускаю этот тест, Spring пытается загрузить все ресурсы, конфигурация которых не связана с моим конкретным тестом.

Я хочу загрузить ТОЛЬКОресурсы, связанные с mongo, и удаление остальных.

Кроме того, я хотел бы иметь несколько файлов *.properties в моем src/test/resources, по одному для каждого вида контекста.

Я знаюсуществует аннотация ActiveProfiles, но как я могу аннотировать сторонние библиотечные ресурсы?spring-data-mongodb пытается загрузить классы @Configuration, и я не могу изменить это поведение.

Надеюсь, я так хорошо объяснил.

...