我的目标是在每个测试方法之后清除()我的 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" 中使用,通过查询 DB 中的测试数据,然后以这种格式编译: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"
在第二次运行(或第二次测试实例)之前与 entityManagertestA
分离,testB
这会导致对"some queried entity 2"
.
我的目标是在测试方法之后清除 entityManager ,而不必在测试方法的每个实例之后清除。
TestNG 是否可以知道接下来运行哪个测试?这样,如果下一个测试是新测试,我可以轻松清除 entityManager。
还有其他建议吗?