2016-10-20 5 views
1

Spring Boot TestNG с несколькими классами AbstractTestNGSpringContextTests инициализирует контекст загрузки для каждого тестового класса.Spring Boot TestNG с несколькими тестами AbstractTestNGSpringContextTests

Я определил несколько классов TestNG Test, как это: -

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 
@DirtiesContext 
public class TestNGClass1 extends AbstractTestNGSpringContextTests{ 

    @LocalServerPort 
    public int port; 
    ....... 
} 

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 
@DirtiesContext 
public class TestNGClass2 extends AbstractTestNGSpringContextTests{ 

    @LocalServerPort 
    public int port; 
    ....... 
} 

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) 
@DirtiesContext 
public class TestNGClass3 extends AbstractTestNGSpringContextTests{ 

    @LocalServerPort 
    public int port; 
    ....... 
} 

Есть ли способ, чтобы повторно использовать Spring контекст во всех этих классов?

ответ

1

@DirtiesContext Тест аннотаций, который указывает на то, что ApplicationContext, связанный с тестом загрязнен и должен поэтому быть закрыты и удалены из кэша контекста.

  1. Использование TestNG сьютов
  2. Удалить @DirtiesContext и использовать @RunWith(SpringRunner.class) and @SpringBootTest

Проверить это https://github.com/ielatif/stackoverflow/tree/master/spring-boot-testng-sample

+0

Как я могу добиться этого с помощью @BeforeSuite. Можете ли вы дать мне пример фрагмента кода. –

+0

Я даю ему попробовать с помощью наборов testng и без @BeforeSuite проверить ссылку в моем ответе –

+0

Спасибо, Иссам, это сработало. Джазак Аллах. –

Смежные вопросы