copy于

waitan2018

使用 @pytest.mark.xxx 标记测试用例: 可以标记测试方法、测试类,标记名可以自定义,最好起有意义的名字; 同一测试类/方法可同时拥有多个标记; # test_login_logout.py   import pytest     @pytest.mark.login class TestLogin:     """登陆功能测试类"""       @pytest.mark.smoke     @pytest.mark.success     def test_login_sucess(self):         """登陆成功"""           # 实现登陆逻辑         pass       @pytest.mark.failed     def test_login_failed(self):         """登陆失败"""           # 实现登陆逻辑         pass     @pytest.mark.logout class TestLogout:     """登出功能测试类"""       @pytest.mark.smoke     @pytest.mark.success     def test_logout_sucess(self):         """登出成功"""           # 实现登出功能         pass       @pytest.mark.failed     def test_logout_failed(self):         """登出失败"""           # 实现登出功能         pass 运行标记的用例: 使用 -m 参数运行标记的测试用例; -m 参数支持 and、or 、not 等表达式; # 运行登陆功能的用例 pytest.main(['-m login']) # 运行登出功能的用例 pytest.main(['-m logout']) # 运行功能成功的用例 pytest.main(['-m success']) # 运行功能失败的用例 pytest.main(['-m failed']) # 运行登陆功能但是不运行登陆失败的测试用例 pytest.main(['-m login and not failed']) # 运行登出功能但是不运行登出成功的测试用例 pytest.main(['-m logout and not success']) # 运行登陆和登出的用例 pytest.main(['-m login or logout']) 注册、管理 mark 标记: 当使用 -m 参数执行 mark 标记的用例时,pytest 会发出告警信息 “PytestUnknownMarkWarning: Unknown pytest.mark.login - is this a typo? ”,告诉你这是一个 pytest 未知的一个标记!为了消除告警,我们需要在 pytest 的配置文件中注册 mark 标记!

注册 mark 标记: 首先在项目根目录创建一个文件 pytest.ini ,这个是 pytest 的配置文件; 然后在 pytest.ini 文件的 markers 中写入你的 mark 标记, 冒号 “:” 前面是标记名称,后面是 mark 标记的说明,可以是空字符串; 注意:pytest.ini 文件中只能使用纯英文字符,绝对不能使用中文的字符(尤其是冒号和空格)! # pytest.ini   [pytest] markers =      login   : 'marks tests as login'     logout  : 'marks tests as logout'     success : 'marks tests as success'     failed  : 'marks tests as failed' 规范使用 mark 标记: 注册完 mark 标记之后 pytest 便不会再告警,但是有时手残容易写错 mark 名,导致 pytest 找不到用例,一时想不开很难debug,尤其是团队协作时很容易出现类似问题,所以我们需要 “addopts = --strict” 参数来严格规范 mark 标记的使用!

在 pytest.ini 文件中添加参数 “addopts = --strict”; 注意要另起一行,不要在 markers 中添加; 添加该参数后,当使用未注册的 mark 标记时,pytest会直接报错:“ 'xxx' not found in `markers` configuration option ”,不执行测试任务; 注意:pytest.ini 配置文件不支持注释,不支持注释,不支持注释... # pytest.ini   [pytest] markers =      login   : 'marks tests as login'     logout  : 'marks tests as logout'     success : 'marks tests as success'     failed  : 'marks tests as failed'   addopts = --strict ———————————————— 版权声明:本文为CSDN博主「waitan2018」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/waitan2018/article/details/104022709

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: