如何在具有优先级的现有测试用例池中插入测试用例

时间:2015-12-22 12:20:36

标签: testng

我在课堂上写了2个与地址相关的测试用例"地址"优先考虑 @Test(优先级= 1) @Test(priority = 2)

然后我在一个类中编写了2个与订单相关的测试用例"优先级为# @Test(优先级= 3) @Test(priority = 4)

让我们假设优先级很高。

问题:现在,如果我想在地址类中添加一个新的测试用例。如何编写它以便与其他地址相关的测试用例串行执行。

1 个答案:

答案 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() {} ,您无法"插入"如果在具有设置优先级的两个给定测试之间没有可用的整数值,则使用优先级进行测试。

如果您以前的测试失败,请注意不要运行测试,那么您可以使用dependsOnMethodspriority

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}}