Мне нужно выполнить некоторый фрагмент кода перед каждым тестовым методом JUnit. Чтобы выполнить этот фрагмент кода, я использую класс SpringTest AbstractTestExecutionListener и его дочерний TransactionContextTestExecutionListener.
Это код:
public class TransactionContextTestExecutionListener extends AbstractTestExecutionListener{
private static final Logger logger = Logger.getLogger(TransactionContextTestExecutionListener.class);
@Override
public void beforeTestMethod(TestContext testContext) throws Exception {
Object ctx = testContext.getApplicationContext().getBean(Context.class);
}
Мой класс JUnit выглядит так:
@ContextConfiguration(locations = "classpath:/META-INF/spring-test/tests-context.xml")
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners(TransactionContextTestExecutionListener.class)
@Transactional
public class SelectQueryBuilderTest {}
Проблема в том, что метод beforeTestMethod вызывается только перед первым выполненным тестовым методом. Он не вызывается перед всеми остальными.
Проблема в конфигурации? Любая идея?
Спасибо