本文共 790 字,大约阅读时间需要 2 分钟。
在TestNG的一个测试suite中,在一个<test>标签中可以包含多个测试类,那么这些测试类之间如何共享动态中间数据呢?
比如在一个测试类Producer中,一个测试方法产生了中间数据groupIds;而在后续测试的另一个测试类Consumer中,一个测试方法要访问这个中间数据。测试套件如下:
......
在TestNG的API中,有一个大家耳熟能详的ITestContext接口。一个ITestContext对象就代表一个<test>标签内的上下文。因而在一个<test>中的多个测试类之间共享动态数据,可以使用ITestContext。
生产数据的测试类Producer:
...public static final String SERVER_GROUPS = "SERVER_GROUPS";public ListgroupIds;//set in one test method@AfterClass(alwaysRun = true)public void reserveGroupIds(ITestContext ctx) { ctx.setAttribute(SERVER_GROUPS, groupIds);}...
消费数据的测试类Consumer:
...public ListgroupIds;@BeforeClass(alwaysRun = true)public void fetchGroupIds(ITestContext ctx) { groupIds = (List ) ctx.getAttribute(Producer.SERVER_GROUPS);}...
参考链接:
转载地址:http://lqlai.baihongyu.com/