У меня есть интеграционные тесты.Но прежде чем запускать все тесты, я должен вставить общие данные.Они нужны только для тестов, например, добавить все права для конкретного пользователя.Конечно, я не могу настроить производственную базу данных с этими правами.
В качестве решения я создал отдельный файл dbunit с общими данными, который должен быть вставлен перед выполнением всех тестов: "common_inserts.xml" Нопроблема в том, что я не хочу дублировать код и добавлять этот файл в каждый тестовый класс, слишком много дублирования.
У меня также есть абстрактный базовый тест, от которого наследуются абсолютно все тесты.И было бы правильно добавить в этот класс общую вставку данных:
@Transactional
@SpringBootTest
@RunWith(SpringRunner.class)
@TestExecutionListeners(value = {
TransactionalTestExecutionListener.class,
DependencyInjectionTestExecutionListener.class,
DbUnitTestExecutionListener.class
}, mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS)
@DatabaseSetup({"/dbunit/common_inserts.xml"})
public abstract class AbstractCommonIntegrationTest {
// ...
}
@DatabaseSetup({"/dbunit/my_test.xml"})
public class MyTest extends AbstractCommonIntegrationTest {
// not inserted data from "/dbunit/common_inserts.xml"
}
Но проблема в том, что она не работает!Не вставлены данные, указанные в абстрактном базовом классе.Возможно ли решить эту проблему?