Pytest测试用例利用小

打印 上一主题 下一主题

主题 1062|帖子 1062|积分 3186

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
基础利用

Pytest 测试用例实当代码
  1. import pytest
  2. from server.service import Service
  3. @pytest.fixture
  4. def service():
  5.     return Service(logger)
  6. class TestService:
  7.     @classmethod
  8.     def setup_class(cls):
  9.         """
  10.         初始化设置一次
  11.         :return:
  12.         """
  13.         logger.info("{}----类初始化设置".format(cls.__name__))
  14.     @classmethod
  15.     def teardown_class(cls):
  16.         """
  17.         结束后,清除设置
  18.         :return:
  19.         """
  20.         logger.info("{}----类清除设置".format(cls.__name__))
  21.     def setup_method(self):
  22.         """
  23.         执行每个方法前,初始化
  24.         :return:
  25.         """
  26.         logger.info("{}----执行每个方法前,初始化".format(self.__module__))
  27.     def teardown_method(self):
  28.         """
  29.         执行每个方法后,清除设置
  30.         :return:
  31.         """
  32.         logger.info("{}----执行每个方法后,清除设置".format(self.__module__)
复制代码
可在类中添加类前后和方法前后固定执行的利用。
界说一个测试实例

  1. @pytest.mark.parametrize(
  2.     ['params', 'expected'],  # 也可使用字符串传入'params, expected'传入
  3.     [
  4.         (
  5.             {
  6.                 "title": "测试用例"
  7.             },
  8.             Code.OK
  9.         ),  # 第一组测试参数
  10.     ]
  11. )
  12. def test_add(self, service, params, expected):
  13.     result = dialogue_service.add_dialogue(**params)
  14.     assert result.code == Code.OK
复制代码

假设TestService类在test_service.py中,运行该类,添加main方法,之后在该文件目录下运行命令python test.service.py
  1. if __name__ == '__main__':
  2.     pytest.main()
复制代码
运行测试类中一个测试用例

可在测试函数函数上添加标识装饰器@pytest.mark.[运行名称],如pytest.marks.add
  1. @pytest.mark.add
  2. def test_add(self, service, params, expected):
  3.     result = service.add(**params)
  4.     assert result.code == Code.OK
复制代码
假如过需要添加参数,则标识按如下方式添加:
  1. @pytest.mark.parametrize(
  2.     ['params', 'expected'],
  3.     [
  4.         pytest.param(
  5.             {"title": "测试用例",},
  6.             Code.OK,
  7.             marks=pytest.mark.add
  8.         ),
  9.     ]
  10. )
  11. def test_add(self, service, params, expected):
  12.     result = service.add(**params)
  13.     assert result.code == Code.OK
复制代码
运行命令:pytest -m add
或直接利用命令,指定要运行的测试用例:pytest test_service.py::TestService:test_add
项目包引入路径题目

  1. import os
  2. import sys
  3. current_path = os.getcwd()
  4. sys.path.append(os.path.join(current_path.split('project_name')[0], 'project_name'))  # 不添加测试时无法找到正确路径
复制代码
将当前项目路径添加到系统中。

参考:
Python自动化测试框架unittest与pytest的区别_pytest和unittest哪个好-CSDN博客


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表