运行用例方式(Python 执行 Pytest)
·
运行用例方式(Python 执行 Pytest)
pytest 是一个用于编写和执行 Python 测试的强大的测试框架。通过使用 Python 命令也可以来执行 pytest 测试,可以搭配Jenkins实现自动化流水线的搭建。
1. Python 执行 Pytest 的优点
🔹 1.批量执行测试:使用 Python 代码,可以轻松批量执行测试套件中的多个测试文件,以提高测试效率。
🔹 2.自定义测试过程:可以编写自定义脚本来配置测试过程,例如设置测试环境、准备测试数据、处理测试结果等。
2. Python 执行 Pytest 方式
🔹 使用 main 函数,main函数固定写法:if __name__ == '__main__':
🔹 使用 python -m pytest 调用 pytest (jenkins 持续集成用到)。
使用 main 函数执行 pytest
-
代码示例
pytest.main():不传递参数,运行当前目录下所有符合规则的用例,包括子目录(test_*.py 和 *_test.py)-
运行方式:python main 函数所存在的 py文件全路径(python test_*.py)
if __name__ == '__main__': # 运行当前目录下所有符合规则的用例,包括子目录(test_*.py 和 *_test.py) pytest.main() -
运行结果:可以看到共计三条用例,全部执行了

-
pytest.main(['py文件全路径::当前文件中存在的用例','-vs']):传递参数,将pytest命令行的参数以列表的形式传递给 main 函数,运行指定文件中的某一条用例-
运行方式:python main 函数所存在的 py文件全路径(python test_*.py)
if __name__ == '__main__': # 运行 test_setup_teardown.py 模块中的 test_func1 用例 pytest.main(['E://project//python_pytest//src//test_setup_teardown.py::test_func1', '-vs']) -
运行结果:可以看到只单独执行了传参的用例

-
pytest.main(['py文件全路径','-vs' P0]):传递参数,将pytest命令行的参数以列表的形式传递给 main 函数,运行指定文件中的标签为 P0 的全部用例-
运行方式:python main 函数所存在的 py文件全路径(python test_*.py)
if __name__ == '__main__': # 运行 test_setup_teardown.py 模块中的 标签为 P0 的用例 pytest.main(['E://project//python_pytest//src//test_setup_teardown.py', '-vs', '-m', 'P0']) -
运行结果:可以看到当前文件中共计5条用例,只执行了标签为P0的用例

-
使用 python 执行 pytest
-
使用 python 执行 pytest的执行方式:
python -m pytest,相当于main函数中的 pytest.main()-
python -m pytest 是在命令行中使用 pytest 的一种方式。通过 python -m 选项以模块的形式运行 pytest,相当于直接运行 pytest 命令。
-
使用 python -m pytest 的主要优势在于保证运行的是当前 Python 环境中的 pytest,避免因多版本或路径问题导致的混淆。一般推荐在跨平台或虚拟环境中使用,以确保一致性。
-
效果示例

-
更多推荐


所有评论(0)