В рабочей среде моя установка работает нормально, но я изо всех сил пытаюсь получить тесты рабочие. Я хочу протестировать свой класс репозитория (
Код: Выделить всё
EclipseProjectAdapterВот что я пробовал:Тестовый класс:
Код: Выделить всё
@SpringBootTest(classes = TestConfig.class)
@Tag("database")
class EclipseProjectAdapterTest {
@Autowired
EmbeddedStorageManager storageManager;
EclipseProjectAdapter adapter;
@BeforeEach
void setUp() {
storageManager.start();
storageManager.setRoot(new DataRoot());
adapter = new EclipseProjectAdapter(storageManager);
}
@AfterEach
void tearDown() {
storageManager.shutdown();
}
@Test
void canReadAndWrite() {
List projects = adapter.findAll();
assertThat(projects).isEmpty();
Project project = Project.create("Project A");
adapter.save(project);
List allProjects = adapter.findAll();
assertThat(allProjects).hasSize(1);
assertThat(allProjects.getFirst().name()).isEqualTo("Project A");
}
}
Код: Выделить всё
@Configuration
public class TestConfig {
@Bean
@Primary
EmbeddedStorageManager inMemoryStorageManager(
@Autowired EclipseStoreProperties myConfiguration,
@Autowired EmbeddedStorageManagerFactory managerFactory,
@Autowired EmbeddedStorageFoundationFactory foundationFactory) {
String tempDir = System.getProperty("java.io.tmpdir") + "/test-store-" + UUID.randomUUID();
myConfiguration.setStorageDirectory(tempDir);
EmbeddedStorageFoundation storageFoundation = foundationFactory.createStorageFoundation(myConfiguration);
return managerFactory.createStorage(storageFoundation, false);
}
}
Код: Выделить всё
org.eclipse.store.storage-directory=${java.io.tmpdir}/${random.int}Код: Выделить всё
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'org.eclipse.store.integrations.spring.boot.types.configuration.EclipseStoreProperties'
available: expected at least 1 bean which qualifies as autowire candidate.
- Включая eclipsestore-spring-boot- start в моем pom.xml.
- Явное определение bean-компонентов EclipseStoreProperties, EmbeddedStorageManagerFactory и EmbeddedStorageFoundationFactory в мой TestConfig.
- Проверка включения автоматической настройки EclipseStore.
- Проверка правильности настройки моего тестового профиля и свойств использовать временный каталог для хранения.
Вопросы:
- Как настроить тест Spring Boot на использование памяти или временного хранилища с EclipseStore?
- Есть ли способ использовать TestContainers или аналогичный подход с EclipseStore для целей тестирования ?
- Есть ли какие-либо рекомендации или примеры тестирования с помощью EclipseStore, которые могли бы помочь решить эти проблемы?
Подробнее здесь: https://stackoverflow.com/questions/789 ... pring-boot