執(zhí)行方式 為pytest命令行方式+ 通過python代碼執(zhí)行pytest
- pytest命令行執(zhí)行
-
在控制臺(tái)執(zhí)行 pytest
2.在控制臺(tái)指定執(zhí)行范圍
a.指定某個(gè)模塊 pytest test_module.py
b.指定某個(gè)目錄及其子目錄的所有測(cè)試文件 pytest testcase
c.指定某個(gè)某塊的某個(gè)方法 pytest test_module::test_function
d.指定執(zhí)行某模塊的某個(gè)類中的某個(gè)用例 用“::”分割 pytesy test_model.py::test_class::test_method
更多指定范執(zhí)行范圍樣例摇幻,請(qǐng)參考官網(wǎng)
- 通過python代碼執(zhí)行pytest
1.直接執(zhí)行pytest.main() 【自動(dòng)查找當(dāng)前目錄下,以test_開頭的文件或者以_test結(jié)尾的py文件】
2.設(shè)置pytest的執(zhí)行參數(shù) pytest.main(['--html=./report.html','test_login.py'])【執(zhí)行test_login.py文件,并生成html格式的報(bào)告】
方式2中,執(zhí)行參數(shù)和插件參數(shù)八拱,通過[]進(jìn)行分割怪与,[]內(nèi)的多個(gè)參數(shù)通過‘逗號(hào),’進(jìn)行分割
pytest.main源碼
通過源碼可以看出,main支持兩個(gè)參數(shù)谢翎,即執(zhí)行參數(shù)和插件參數(shù)
def main(args=None, plugins=None):
""" return exit code, after performing an in-process test run.
:arg args: list of command line arguments.
:arg plugins: list of plugin objects to be auto-registered during
initialization.
"""
try:
try:
config = _prepareconfig(args, plugins)
except ConftestImportFailure as e:
tw = py.io.TerminalWriter(sys.stderr)
for line in traceback.format_exception(*e.excinfo):
tw.line(line.rstrip(), red=True)
tw.line("ERROR: could not load %s\n" % (e.path), red=True)
return 4
else:
try:
return config.hook.pytest_cmdline_main(config=config)
finally:
config._ensure_unconfigure()
except UsageError as e:
tw = py.io.TerminalWriter(sys.stderr)
for msg in e.args:
tw.line("ERROR: {}\n".format(msg), red=True)
return 4