Огурец 4 с пружинной загрузкой и JPA - PullRequest
0 голосов
/ 15 ноября 2018

Я использую cucumber + cucumber-spring 4.1 для тестирования приложения SpringBoot 2.1.Это имеет сценарии, которые требуют откат базы данных между каждым сценарием, но на всю жизнь я не могу заставить его работать.

Я пробовал:

Базовый класс с несколькими аннотациями

`
@Transactional
@RunWith(SpringRunner.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
public abstract class SpringBootBaseIntegrationTest { .. } `

Классы Stepdef, такие как:

`
@ContextConfiguration(classes = {Application.class})
@Ignore
@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD)
@Transactional
public class DatabaseSteps extends SpringBootBaseIntegrationTest implements En { ... }
`

Особенности и сценарии снабжены комментариями @txn и добавлен клей 'cucumber.api.spring'.

В моем приложении:

`
@EnableJms
@EnableJpaRepositories
@EnableTransactionManagement
@SpringBootApplication
@PropertySource(ignoreResourceNotFound = false, value = "classpath:application.properties")
class Application implements CommandLineRunner { ... }
`

и я использую стандартные репозитории JPA.

Мои application.properties:

`
spring.jpa.properties.hibernate.jdbc.time_zone=UTC
spring.datasource.initialization-mode=always
spring.jpa.hibernate.ddl-auto=create

spring.jpa.properties.hibernate.generate_statistics=false
spring.jpa.properties.hibernate.show_sql=false
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
#spring.h2.console.enabled=true
`

но что бы я ни делал, в любой комбинации данные по-прежнему остаются между тестами.

Может ли кто-нибудь пролить свет или управлять рабочей установкой?

Приветствия

1 Ответ

0 голосов
/ 30 ноября 2018

Я понял это в конце. Мои тесты Cucumber входили в приложение несколькими различными методами (JMS, Rest), и, следовательно, тест не владел областью транзакции для данных, введенных через эти сервисы.

Следовательно, я усекаю таблицы БД в хуке перед сценарием для каждого теста, который, кажется, работает нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...