改进TestNG的测试方法依赖管理
来源:互联网 发布:js中遍历数组对象 编辑:程序博客网 时间:2024/06/05 05:23
- @Test(dependsOnMethods="testMethod2")
- public void testMethod1() {
- System.out.println("in testMethod1");
- }
这样就表示在执行testMethod1测试之前,先去检查一下testMethod2这个方法,如果testMethod2这个方法测试通过了,才会执行testMethod1,否则直接将testMethod1的执行结果标记为“skipped”。在大型项目的测试中,特别是涉及到一些不纯粹是单元测试的测试时,这个特性非常有用。dependsOnMethods的属性可以引用其他类中的测试方法,如可以写成@Test(dependsOnMethods="com.test.Test1.testMethod2")。
但这样,我如果要单独执行某个测试类的话,麻烦就来了(这种单独执行某个测试类的方法在单元测试中基本不存在,但在一些自动化的集成测试、功能测试中因为执行时间的问题就很常见了)。我写了在com.test.Test1这个类的某个测试方法里写了@Test(dependsOnMethods="com.test.Test2.testMethod2"),在执行Test1时,会直接提示出错找不到testMethod2方法,只有把Test1和Test2作为一个suite来统一执行的时候才可以正常运行。
TestNG还有对Group的依赖管理,也同样有这个问题。
为了解决这个问题,得到一个适合做集成测试、功能测试的TestNG版本,研究了一些TestNG的源代码,发现修改两个地方可以解决这个问题:
1. org.testng.internal.MethodHelper的findMethodsNamed方法。这个方法是用来根据名字查找测试方法的,不存在会抛出异常。将抛出异常的部分注释掉即可,如下。
- if (!foundAtLeastAMethod) {
- System.out.println("依賴的方法沒有找到。");
- // throw new TestNGException(mainMethod
- // + "() is depending on nonexistent method "
- // + currentRegexp);
- }
这个方法只有在检查测试依赖项时才会被调用,可以放心修改,不会影响其他功能。
2. org.testng.internal.Invoker类的checkDependencies方法,这里头有一段为检查依赖中是否有不存在group,将其注释掉即可。
- // Any missing group?
- // if (testMethod.getMissingGroup() != null) {
- // return false;
- // }
这样修改了之后,当某个测试方法的依赖中有不存在的method或者group时,就不会skip这个method,而是直接执行这个method了。开源的东西果然还是方便啊。
0 0
- 改进TestNG的测试方法依赖管理
- TestNG的依赖测试代码
- TestNG中测试方法的依赖关系详解
- TestNG 4 依赖测试
- TestNG依赖测试
- TestNG依赖测试
- testng(三) 依赖测试
- TestNG依赖测试
- 执行TestNG的测试方法
- TestNG 编写带有依赖的测试用例
- TestNG中测试函数的依赖关系详解
- TestNG源代码分析 --- 依赖管理的实现(一)
- TestNG源代码分析 --- 依赖管理的实现(二)
- TestNG源代码分析 --- 依赖管理的实现(一)
- TestNG源代码分析 --- 依赖管理的实现(二)
- TestNG 中获得测试方法的名称
- TestNG系列-第五章 测试方法、测试类和测试分组(续3)-依赖关系
- TestNG 三 测试方法
- hibernateTemplate常用方法
- c16
- Java抽象类和接口的区别(好长时间没看这种文章了)
- JabRef中文手册
- Java通过Dom4j来解析和创建XML文件
- 改进TestNG的测试方法依赖管理
- ubuntu安装和查看已安装
- UIButton中setTitleEdgeInsets和setImageEdgeInsets的使用
- Android Http请求方法汇总
- 交互设计起步指南总结
- makefile.win
- properties配置文件的读取
- Win7 64位下Visual Studio 2010连接Oracle数据库错误ORA-06413
- SSH框架系列:Spring配置多个数据源