2016-06-16 3 views
3

Интеграционный тест, выполняемый огурцом, как правило, оставляет за собой контекст, который вызывает проблемы с последующими тестами. Очевидное решение оказалось весной @DirtiesContext, но вместо того, чтобы срывать контекст после того, как все функции огурца были запущены, он делает это после каждого сценария, тем самым делая время выполнения теста довольно продолжительным. Пробовал также с @TestExecutionListeners, но не повезло.@DirtiesContext разрывает контекст вниз после каждого сценария тестирования огурца, а не класс

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = { MyApplication.class, MyTestComponent.class }, loader = SpringApplicationContextLoader.class) 
@ActiveProfiles({ "test", "someotherprofile" }) 
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) 
@WebIntegrationTest(randomPort = true) 
public class StepDefs extends StepDefUtils { 
    // givens, whens, thens 

Я пытаюсь использовать DirtiesContext в неподдерживаемом виде?

ответ

0

Методы испытаний огурца скомпилированы в разные классы испытаний, поэтому @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) будет запускаться после каждого метода испытаний.

К сожалению, я не вижу ни одного режима DirtiesContext, который бы соответствовал вашим потребностям. Я бы поискал прослушиватель огурцов и вручную подталкивал весенний контекст.