Как добавить данные DBUnit до запуска всех тестов? - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть интеграционные тесты.Но прежде чем запускать все тесты, я должен вставить общие данные.Они нужны только для тестов, например, добавить все права для конкретного пользователя.Конечно, я не могу настроить производственную базу данных с этими правами.

В качестве решения я создал отдельный файл 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"
}

Но проблема в том, что она не работает!Не вставлены данные, указанные в абстрактном базовом классе.Возможно ли решить эту проблему?

...