我想做的是
请参阅以下示例:
如果 test3 成功,则运行 test4 但 test4 以干净状态启动,它将不会共享相同的灯具< / p>
public class SomeTestClass extends Insertable {
@BeforeSuite
public void background() {
insert(0);
}
@Test()
public void test1() {
// when
insert(1);
// then
assertThatIsContained(0);
assertThatIsContained(1);
}
@Test(dependsOnMethods = {"test1"})
@SharedFixture
public void test2() {
// when
insert(2);
// then
assertThatIsContained(0);
assertThatIsContained(1);
assertThatIsContained(2);
}
@Test(dependsOnMethods = {"test2"})
@SharedFixture
public void test3() {
// when
insert(3);
// then
assertThatIsContained(0);
assertThatIsContained(1);
assertThatIsContained(2);
assertThatIsContained(3);
}
@Test(dependsOnMethods = {"test2"})
@FreshFixture
public void test4() {
// given
insert(99);
// when
insert(4);
// then
assertThatIsNotContained(1);
assertThatIsNotContained(2);
assertThatIsNotContained(3);
assertThatIsContained(0);
assertThatIsContained(99);
assertThatIsContained(4);
}
}
答案 0 :(得分:1)
您可以将测试分成两个groups(通过在groups
注释中指定@Test
属性),并使用@BeforeGroups
注释初始化方法,使其仅运行每组一次。
要使您的群组按特定顺序执行,请在dependsOnGroups
注释中使用@Test
。
实现相同目标的更直接的方法是将您的方法拆分为两个类(比如Test1
和Test2
),并在{@BeforeClass
中定义一个带注释的方法1}} superclass在每个类中的测试方法执行之前清理你的存储库(通过调用Insertable
或clear()
或其他)。