首页 / 知识
关于java:我可以在TestNG测试用例上指定类范围的组吗?
2023-04-12 02:07:00

Can I specify a class wide group on a TestNG test case?我有一个基类,它表示TestNG中的数据库测试,我想指定所有从该类扩展的类都属于" db-test"组,但是我发现这似乎是不可能的。 我尝试了@Test批注:
但是,这是行不通的,因为@Test批注将尝试将一堆方法纳入测试,并且在运行测试时会在eclipse中弹出警告/错误。 所以我尝试禁用测试,因此至少分配了组:
但是然后任何@BeforeTest(和其他类似的注释)也被禁用了……这当然不是我想要的。 我想以某种方式将类注释为特定类型的组,但在TestNG中似乎不太可能。 还有其他想法吗? TestNG将使用@Test批注运行类中的所有公共方法。也许您可以更改不想让TestNG运行为非公开的方法 答案是通过自定义的org.testng.IMethodSelector: 它的includeMethod()可以排除我们想要的任何方法,例如公共未注释的方法。 但是,要注册自定义Java MethodSelector,必须将其添加到任何TestRunner管理的XMLTest实例中,这意味着您需要自己的自定义TestRunner。 但是,要构建自定义的TestRunner,您需要通过-testrunfactory选项注册一个TestRunnerFactory。 但是TestNG类从不考虑-testrunfactory ...因此,您还需要定义一个自定义TestNG类:
好吧...这是一场噩梦。但这也是一个代码挑战,因此它必须具有一定的挑战性;) DZone片段中提供了所有代码。 像往常一样进行代码挑战:
来自Mike Stone的更新: 我将接受这一点,因为这听起来与我最终要完成的工作非常接近,但是我认为我也会补充我所做的事情。 基本上,我创建了一个Groups批注,其行为类似于Test(和其他)批注的groups属性。 然后,我创建了一个GroupsAnnotationTransformer,它使用IAnnotationTransformer查看所有测试和定义的测试类,然后修改测试以添加组,这与组排除和包含完美配合。 修改构建以使用新的注释转换器,一切都可以完美运行! 好吧...一个警告是,它没有将组添加到非测试方法中...因为在我这样做的时候,还有一个注释转换器可以让您转换任何内容,但是不包括在内在我出于某种原因使用的TestNG中...因此,使您之前/之后的注释方法始终运行为true是一个好主意...这对我来说已经足够了。 最终结果是我可以做到:
然后,我使变压器能够处理子类化和所有工作。 在我看来,这是以下代码挑战(社区Wiki帖子): 如何在不使用" aGlobalGroup"组的情况下执行扩展类的所有测试方法:
第一个答案很简单: 该组将适用于Base类和Extended类的所有公共方法。 但是:即使是非testng的公共方法(没有TestNG注释)也将包括在该组中。 挑战:避免包括那些非TestNG方法。
我不确定TestNG的注释继承如何工作,但是本文可能会有所帮助。 实际上,这可能会更好,请看一下InheritGroups。 您可以在方法级别指定@Test批注,以实现最大的灵活性。
这对您有用吗,或者我从您的问题中遗漏了一些东西。 |
最新内容
相关内容
python如何操作mysql数据库
python如何操作mysql数据库,培训,标准,项目,密码,数据库,接口,表字,操作,用户,机子,Python标准数据库接口为PythonDB-API,PythonDB-API为开发python使用as指定别名
python使用as指定别名,培训,别名,模块,函数,星号,语法,以上,操作,方法,教程,python使用as指定别名1、可以为模块指定别名。在模块中指定简短python脚本如何指定文件
python脚本如何指定文件,培训,文件,脚本,参数,赋值,变量,路径,实例,以上,需求,python脚本如何指定文件1、说明(1)dest=files,是说将命令行中,--python基类是什么意思
python基类是什么意思,培训,属性,之间,知识点,所学,父子,静态,语法,实例,练习,python基类是什么意思1、说明继承就是让类和类之间产生父子关使用 MS Access 作为 MySQL 数据库
使用 MS Access 作为 MySQL 数据库后端的前端的问题?,使用 MS Access 作为 MySQL 数据库后端的前端的问题?,数据库,用户,文件,编写,Iss关于SQL Server:MOSS SSP问题-从已
关于SQL Server:MOSS SSP问题-从已删除的SSP失败的数据库登录,关于SQL Server:MOSS SSP问题-从已删除的SSP失败的数据库登录,的是,生关于数据库:将图像存储在数据库中-
关于数据库:将图像存储在数据库中-是或否?,关于数据库:将图像存储在数据库中-是或否?,位置,图像,应用程序,文件系统,Storing Images in D在性能开始下降之前,MySQL数据库能
在性能开始下降之前,MySQL数据库能达到多少?,在性能开始下降之前,MySQL数据库能达到多少?,性能,数据库,数量,什么时候开始,How big can a关于sql server:由多个用户编辑数据
关于sql server:由多个用户编辑数据库记录,关于sql server:由多个用户编辑数据库记录,服务,应用程序,规范化,用户,Editing database re组件可以为 props 指定验证要求
组件可以为 props 指定验证要求,组件,可,以为,props,指定,验证,要求,Prop,验证,,Prop 验证组件可以为 props 指定验证要求。为了定关于数据库:MySQL中的二进制数据
关于数据库:MySQL中的二进制数据,关于数据库:MySQL中的二进制数据,数据库,图像,二进制,数据,Binary Data in MySQL如何在MySQL中存储二