pytest框架 |
您所在的位置:网站首页 › pycharm中怎么运行py文件中的单个test › pytest框架 |
1、pytest介绍:基于unittest 之上的单元测试框架
1.1、自动发现测试模块和测试用例; unitest 需要添加用例,(泰斯特楼贷)加载器加载测试用例 pytest 只需要一条代码就可以 1.2、断言使用 assert + 表达; unitest 定义了所有的 断言方式 pytest 只需要使用一个关键字 assert + 表达式 就可以了,表达式为真则断言通过,表达式为假则断言失败 1.3、pytest 可以设置测试会话级、模块级、类级、函数级的 fixtures; 1.4、有丰富的插件库,目前在600个以上(框架库插件地址:http://plugincompat.herokuapp.com/) 2、pytest 自动发现测试用例规则(按照:目录-文件-函数/类) 2.1、默认从当前目录中搜集测试用例,即在那个目录下运行pytest 命令,则从那个目录当中搜索 2.2、搜索规则:进入目录后,在按照搜索规则搜索用例 2.2.1、符合命名规则 test_*.py 或者 *_test.py 的文件 2.2.2、以 test_ 开头的函数名 2.3.3、以 Test 开头的测试类(没有 _init_ 函数)当中,以 test_ 开头的函数 3. pytest 执行方式第一种:cmd 中执行 pytest 命令;先进入代码所在文件,然后执行 pytest 命令 ========== testsession starts ========:代表会话开始 python3.7:代表那个平台 pytest-5.2.1 :代表pytest版本 rootdir:代表搜索用例的地址第二种:执行标签名:同第一种方法:在 pycharm 控制台的 Terminal 功能,执行 pytest 命令 命令:pytest pytest -h :控制台查看命令行参数 执行标签名 aaa 的测试用例 pytest -m 标签名 :通过命令行 -m 过滤用例运行 例如:pytest -m aaa pytest -m 标签名 -s -v :控制台搜索输出详情用例名,可以看到成功与失败提示 例如:pytest -m aaa-s -v 实例:
第三种:pytest 的 main 函数 (同前两种方法) import pytest if __name__ == '__main__': pytest.main()
3、pytest - Mark(打标签是为了筛选测试用例:冒烟、回归) 步骤: 注册标签名:pytest.ini 给用例打标记:pytest.mark.注册的标签名 通过命令 -m 过滤用例运行:pytest.-m 标签名 3.1、第一步:注册标签名1、注册方式:创建 pytest.ini 文件,在文件中按如下形式添加标签名 [pytest] markers= aaa:mao yan bbb ccc ddd # 标签名冒号后面可以添加注释信息必须是英文 # 红色字段为固定模式,不能改变
第二种:注册方式(推荐用第一种) 在conftest.py文件当中,通过hook注册: def pytest_configure(config): config.addinivalue_line("markers", "smoke1:标记只运行冒烟用例") config.addinivalue_line("markers", "demo1:示例运行")3.2、第二步:给用例打标签 1、在测试用例 / 测试类前面加上标签:@pytest.mark.已注册的标记名 import pytest # 需要导入 pytest # 单个标记 @pytest.mark.aaa def test_aaa(): assert 100 == 100 2、可以在一个用例上打多个标签,多次使用:@pytest.mark.已注册的标记名 import pytest # 多个标记 @pytest.mark.aaa @pytest.mark.ddd def test_bbb(): assert 200 == 200 3、在给类打标签,类里面的函数打标签 # 给测试类打标签 @pytest.mark.ddd class TestDemo: @pytest.mark.bbb def test_ccc(self): assert 300 == 300 @pytest.mark.ccc def test_ddd(self): assert 400 == 400 def test_0_eee(self): assert 500 == 500 2.2、打标签使用方式二: 2.1、在测试类里,使用以下申明(测试类下,所有用例都被打上该标签) class TestDemo: # 单个标签 pytestmark = pytest.mark.已注册标签名 # 多个标签 pytestmark = [pytest.mark.标签1, pytest.mark.标签1]2.2、在模块文件里(py文件下,所有测试函数和测试类里面的测试函数,都有会打上该标签) import pytest # 单个标签 pytestmark = pytest.mark.已注册标签名 # 多个标签 pytestmark = [pytest.mark.标签1, pytest.mark.标签1]3.3、通过命令 -m 过滤用例运行(pytest 执行方式)
4、pytest -m 标签名:用例执行顺序 4.1、文件名称 按 ASCII 码排序 4.2、文件内部按代码先后顺序排序 大佬文档:https://www.cnblogs.com/Simple-Small/p/11077123.html
*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |