我有一个 TestA ,它执行对多个Web服务的调用(由@DataProvider提供)并验证每个Web服务的状态。
TestB 然后验证 TestA 成功运行所产生的输出的其他属性。
要使用 TestNG 运行这些测试,我尝试了两种方法:
问题:
如果 1 以上,是否可以根据测试的输出动态生成并运行新的测试类(如Factory所做的那样)?
如果没有,上面的情况 2 ,推荐的TestNG方式,还是有更好的方法呢?
更新 我还在TestNG users group上问过这个问题,因为Cedric建议
答案 0 :(得分:2)
你所要求的内容实际上不可能如上所述:TestNG需要在初始化时知道所有测试类,以便它可以正确计算排序,即使你用工厂创建这些类。
但是,有很多方法可以通过不运行不依赖于第一次测试输出的测试来实现您想要的目标。
例如,testA可以生成一个空集合,以便testB将接收零数据来运行。
如果您需要更多帮助,请发布一些特定代码(并随时给testng用户发送电子邮件以继续讨论)。
答案 1 :(得分:0)
测试应该使用自己的夹具相互独立,以便易于维护,自包含和理由。如果您的场景包含两个Web服务调用(流程测试),其中第一次调用的响应充当第二次调用的输入,然后确保在setUp()
方法中进行第一次调用,以便第二次调用的fixture是显式的。