追求代码质量: JUnit 4 与 TestNG 的对比
2009-11-19 00:00:00 来源:WEB开发网核心提示: 在清单 3 中定义了两个测试:一个验证登录,另一个验证账户信息,追求代码质量: JUnit 4 与 TestNG 的对比(5),请注意,通过使用 Test 注释的 dependsOnMethods = {"verifyLogIn"} 子句,在前面的例子里,您只需重新运行那三个
在清单 3 中定义了两个测试:一个验证登录,另一个验证账户信息。请注意,通过使用 Test 注释的 dependsOnMethods = {"verifyLogIn"} 子句,verifyAccountInfo 测试指定了它依赖 verifyLogIn() 方法。
通过 TestNG 的 Eclipse 插件(例如)运行该测试时,如果 verifyLogIn 测试失败,TestNG 将直接跳过 verifyAccountInfo 测试,请参见图 1:
图 1. 在 TestNG 中跳过的测试
图片看不清楚?请点击这里查看原图(大图)。
对于大型测试套件,TestNG 这种不标记为失败,而只是跳过的处理方法可以减轻很多压力。您的团队可以集中精力查找为什么百分之五十的测试套件被跳过,而不是去找百分之五十的测试套件失败的原因!更有利的是,TestNG 采取了只重新运行失败测试的机制,这使它的依赖性测试设置更为完善。
失败和重运行
在大型测试套件中,这种重新运行失败测试的能力显得尤为方便。这是 TestNG 独有的一个特性。在 JUnit 4 中,如果测试套件包括 1000 项测试,其中 3 项失败,很可能就会迫使您重新运行整个测试套件(修改错误以后)。不用说,这样的工作可能会耗费几个小时。
一旦 TestNG 中出现失败,它就会创建一个 XML 配置文件,对失败的测试加以说明。如果利用这个文件执行 TestNG 运行程序,TestNG 就只 运行失败的测试。所以,在前面的例子里,您只需重新运行那三个失败的测试,而不是整个测试套件。
更多精彩
赞助商链接