Хорошо, это заняло у меня весь день, но я, наконец, получил свои свойства приложения для загрузки в мой тестовый контекст. Я сделал 2 изменения:
Во-первых, я добавил аннотацию @Service к моей службе VqsS3FileReader, которую я изначально забыл. Кроме того, хотя я обновил свой тест, чтобы не вводить AmazonS3Config через конструктор, я забыл обновить мою службу, чтобы сделать то же самое. Поэтому я изменил
следующее:
class VqsS3FileReader(val amazonS3Config: AmazonS3Config) : VqsFileReader {
companion object: mu.KLogging()
...
:
@Service
class VqsS3FileReader : VqsFileReader {
companion object: mu.KLogging()
@Resource
private lateinit var amazonS3Config: AmazonS3Config
...
Наконец, я изменил свои аннотации Spring на мой тест.
из этого:
@ActiveProfiles("test")
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@ExtendWith(SpringExtension::class)
@ContextConfiguration(classes = [AmazonS3Config::class, VqsS3FileReader::class])
class VqsS3FileReaderTest(): TestBase() {
...
к этому:
@ActiveProfiles("test")
@SpringBootTest
@ComponentScan("com.ilmn.*")
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@ExtendWith(SpringExtension::class)
@EnableAutoConfiguration
@SpringJUnitConfig(SpringBootContextLoader::class)
class VqsS3FileReaderTest(): TestBase() {
...
Кажется, у меня есть необычное количество аннотаций на моем тесте сейчас ... так что я буду внимательно изучая то, что каждый из них действительно делает, и посмотрим, смогу ли я уменьшить его. Но по крайней мере мои свойства сейчас вводятся в тестовый контекст.