我在课堂上写了2个与地址相关的测试用例"地址"优先考虑 @Test(优先级= 1) @Test(priority = 2)
然后我在一个类中编写了2个与订单相关的测试用例"优先级为# @Test(优先级= 3) @Test(priority = 4)
让我们假设优先级很高。
问题:现在,如果我想在地址类中添加一个新的测试用例。如何编写它以便与其他地址相关的测试用例串行执行。
答案 0 :(得分:0)
由于priority
是@Test(priority = 1) public void test1() {}
@Test(priority = 2) public void test2() {}
@Test(priority = 3) public void test3() {}
@Test(priority = 4) public void test4() {}
// "insert" test between 2 and 3
@Test(priority = 2, dependsOnMethods = { "test2" }) public void test2b() {}
,您无法"插入"如果在具有设置优先级的两个给定测试之间没有可用的整数值,则使用优先级进行测试。
如果您以前的测试失败,请注意不要运行测试,那么您可以使用dependsOnMethods
和priority
:
static final int TEST_1_PRIORITY = 1;
static final int TEST_2_PRIORITY = TEST_1_PRIORITY + 1; // evaluates to 2
static final int TEST_3_PRIORITY = TEST_2_PRIORITY + 1; // evaluates to 3
static final int TEST_4_PRIORITY = TEST_3_PRIORITY + 1; // evaluates to 4
@Test(priority = TEST_1_PRIORITY) public void test1() {}
@Test(priority = TEST_2_PRIORITY) public void test2() {}
@Test(priority = TEST_3_PRIORITY) public void test3() {}
@Test(priority = TEST_4_PRIORITY) public void test4() {}
但是,如果你想严格使用优先级,那么你可以定义一些静态常量来帮助插入"进行测试,这样您就不必每次都希望手动重新排序测试优先级,并插入"测试:
插入新测试之前
static final int TEST_1_PRIORITY = 1;
static final int TEST_2_PRIORITY = TEST_1_PRIORITY + 1; // still evaluates to 2
static final int TEST_2b_PRIORITY = TEST_2_PRIORITY + 1; // evaluates to 3
static final int TEST_3_PRIORITY = TEST_2b_PRIORITY + 1; // now evaluates to 4
static final int TEST_4_PRIORITY = TEST_3_PRIORITY + 1; // now evaluates to 5
@Test(priority = TEST_1_PRIORITY) public void test1() {}
@Test(priority = TEST_2_PRIORITY) public void test2() {}
@Test(priority = TEST_2b_PRIORITY + 2) public void test2b() {}
@Test(priority = TEST_3_PRIORITY) public void test3() {}
@Test(priority = TEST_4_PRIORITY) public void test4() {}
插入新测试后
{{1}}