import pytest
# 自定义标记。
@pytest.mark.mac
def test_mac():
print("=== mac ===")
@pytest.mark.linux
def test_linux():
print("=== linux ===")
@pytest.mark.windows
def test_windows():
print("=== windows ===")
pytest.ini 全局配置文件,是 pytest 单元测试框架的核心配置文件,它可以改变 pytest 的运行方式。
注意:pytest.ini 需要和运行的测试用例同一个目录,或在根目录下作用于全局。
文件名为 pytest.ini,内容如下:
[pytest]
;注册 mark 标记
markers =
mac : marks tests as mac
linux: marks tests as linux
windows : marks tests as windows
pytest.ini 文件需要设置 GBK 格式。
注意:如果编码格式不符合要求,运行 pytest 会报 UnicodeDecodeError: ‘gbk’ codec can’t decode byte 异常!
可以通过文本工具进行编码转换。
也可以在 pycharm 中设置:
可以有两种执行方式。
if __name__ == '__main__':
# 如果传入参数没有生效,则说明:
# 原因:程序识别到了 pytest 框架,默认 pytest 运行,要 main() 主函数运行,需要修改 python 解释器。
# 解决:菜单栏 Run => Edit Configurations... => "+" => Python => 设置运行文件及工作目录。
pytest.main(["-s", "-m=mac", "test_demo.py", ])
# === mac ===
# 进入 cmd 终端。
# 命令。
pytest -s -m "mac" test_demo.py
# 结果。
=== mac ===
===== 1 passed, 2 deselected in 0.01s =====
# 命令。
pytest -s -m "not mac" test_demo.py
# 结果。
=== linux ===
=== windows ===
===== 2 passed, 1 deselected in 0.01s =====
# 命令。
pytest -s -m "mac or linux" test_demo.py
# 结果。
=== mac ===
=== linux ===
===== 2 passed, 1 deselected in 0.01s =====
“-------怕什么真理无穷,进一寸有一寸的欢喜。”
微信公众号搜索:饺子泡牛奶。