pytest 小记
1.如何在case失败后做操作?
需要在conftest文件中加入函数 pytest_exception_interact 如下:
def pytest_exception_interact(node, call, report): if report.failed: # do somethings pass
2.如何在整个测试流程结束后(整个pytest执行完毕)做操作
需要在conftest文件中加入函数 pytest_sessionfinish
# 整个测试session后执行一次 def pytest_sessionfinish(session, exitstatus): # do somethings pass
3.更改工作目录到脚本目录
以下函数级fixture将切换到测试用例目录,直接放入 conftest.py 文件中即可
# 每次测试时候切换工作目录到脚本目录 @pytest.fixture(autouse=True) def change_test_dir(request): os.chdir(request.fspath.dirname) yield os.chdir(request.config.invocation_dir)
fspath
是正在执行的测试模块的LocalPath
dirname
是测试模块的目录request.config.invocationdir
-从中执行pytest的文件夹request.config.rootdir
-pytest root,不会根据您运行pytest的位置进行更改。此处未使用,但可能有用。
喜欢的觉得有用的就点个赞吧,点波关注不迷路呦