pytest-yaml-sanmu

pytest-yaml-sanmu是一个 pytest 插件,使pytest将yaml文件视为测试用例。

此外,还可以在YAML用例中中使用标记、夹具、变量,甚至调用Python函数。

# tests/usefixtures/test_mark_usefixtures_params.yaml

name: 使用fixture返回值
mark:
  - usefixtures:
      - name
steps:
  - request:
      method: get
      url: https://www.baidu.com/?o=${name}
(.venv) C:\demo\pytest-yaml-demo>pytest
======================================= test session starts =======================================
platform win32 -- Python 3.12.0, pytest-8.2.2, pluggy-1.5.0
rootdir: C:\demo\pytest-yaml-demo
configfile: pytest.ini
plugins: allure-pytest-2.13.5, anyio-4.7.0, result-log-1.2.2, xdist-3.6.1, yaml-1.1.0
collected 58 items

tests\function\test_function.yaml .                                                          [  1%]
tests\function\test_globals_functions.yaml .                                                 [  3%]
tests\mark\test_mark_skip.yaml s                                                             [  5%]
tests\mark\test_mark_skipif.yaml s.                                                          [  8%]
tests\mark\test_mark_user.yaml ..                                                            [ 12%]
tests\mark\test_mark_xfail.yaml .XX                                                          [ 17%]
tests\parametrize\test_mark_parametrize.yaml ...                                             [ 22%]
tests\parametrize\test_mark_parametrize_load_file.yaml ...                                   [ 27%]
tests\parametrize\test_mark_parametrize_multi_mark.yaml ...........................          [ 74%]
tests\parametrize\test_mark_parametrize_multi_param.yaml ...                                 [ 79%]
tests\test_base.yaml .                                                                       [ 81%]
tests\usefixtures\test_mark_usefixtures.yaml .                                               [ 82%]
tests\usefixtures\test_mark_usefixtures_params.yaml ...                                      [ 87%]
tests\usefixtures\test_mark_usefixtures_values.yaml ..                                       [ 91%]
tests\variable\test_vars_globals.yaml .                                                      [ 93%]
tests\variable\test_vars_locals.yaml .                                                       [ 94%]
tests\variable\test_vars_marks.yaml ..                                                       [ 98%]
tests\variable\test_vars_shared.yaml .                                                       [100%]

============================ 54 passed, 2 skipped, 2 xpassed in 0.63s =============================