Моя цель - очистить () мой javax.persistence.EntityManager после каждого метода тестирования.
Вот пример тестового класса:
public class Example
{
@Test(dataProvider = "sampleDataProvider")
public void testA(String parameter)
{
System.out.println(parameter);
}
@Test(dataProvider = "sampleDataProvider")
public void testB(String parameter)
{
System.out.println(parameter);
}
}
EntityManager используется в dataProvider «sampleDataProvider», запрашивая БД для тестовых данных, которые затем компилируются в этом формате: new Object[2][1]
.Помните, что все запросы и компиляция данных выполняются до того, как тестовый метод (аннотированный @DataProvider) будет фактически запущен, и что мы фактически запрашиваем сущности, а не только строки.
Приведенный выше тестовый классбудет выглядеть так:
testA("some queried entity 1")
testA("some queried entity 2")
testB("some queried entity 1")
testB("some queried entity 2")
Моим первоначальным решением было использование аннотации @AfterTest
для очистки entityManager.Однако он отсоединит "some queried entity 2"
от entityManager перед вторым запуском (или вторыми тестовыми экземплярами) testA
и testB
, что вызовет проблемы при операциях чтения / записи для членов "some queried entity 2"
.
Моя цель - очистить entityManager после метода тестирования , и не обязательно после каждого экземпляра метода тестирования.
Позволяет ли TestNG узнать, какой тест будет запущен следующим?Таким образом, я мог бы легко очистить entityManager, если следующий тест будет новым.
Любые другие рекомендации?