前言
pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行
查看pytest.ini的配置选项
pytest -h
找到以下内容
[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found: markers (linelist): markers for test functions empty_parameter_set_mark (string): default marker for empty parametersets norecursedirs (args): directory patterns to avoid for recursion testpaths (args): directories to search for tests when no files or directories are given in the command line. filterwarnings (linelist): Each line specifies a pattern for warnings.filterwarnings. Processed after -W/--pythonwarnings. usefixtures (args): list of default fixtures to be used with this project python_files (args): glob-style file patterns for Python test module discovery python_classes (args): prefixes or glob names for Python test class discovery python_functions (args): prefixes or glob names for Python test function and method discovery disable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool): disable string escape non-ascii characters, might cause unwanted side effects(use at your own risk) console_output_style (string): console output: "classic", or with additional progress information ("progress" (percentage) | "count"). xfail_strict (bool): default for the strict parameter of xfail markers when not given explicitly (default: False) enable_assertion_pass_hook (bool): Enables the pytest_assertion_pass hook.Make sure to delete any previously generated pyc cache files. junit_suite_name (string): Test suite name for JUnit report junit_logging (string): Write captured log messages to JUnit report: one of no|log|system-out|system-err|out-err|all junit_log_passing_tests (bool): Capture log information for passing tests to JUnit report: junit_duration_report (string): Duration time to report: one of total|call junit_family (string): Emit XML for schema: one of legacy|xunit1|xunit2 doctest_optionflags (args): option flags for doctests doctest_encoding (string): encoding used for doctest files cache_dir (string): cache directory path. log_level (string): default value for --log-level log_format (string): default value for --log-format log_date_format (string): default value for --log-date-format log_cli (bool): enable log display during test run (also known as "live logging"). log_cli_level (string): default value for --log-cli-level log_cli_format (string): default value for --log-cli-format log_cli_date_format (string): default value for --log-cli-date-format log_file (string): default value for --log-file log_file_level (string): default value for --log-file-level log_file_format (string): default value for --log-file-format log_file_date_format (string): default value for --log-file-date-format log_auto_indent (string): default value for --log-auto-indent faulthandler_timeout (string): Dump the traceback of all threads if a test takes more than TIMEOUT seconds to finish. addopts (args): extra command line options minversion (string): minimally required pytest version required_plugins (args): plugins that must be present for pytest to run base_url (string): base url for the application under test. render_collapsed (bool): Open the report with all rows collapsed. Useful for very large reports max_asset_filename_length (string): set the maximum filename length for assets attached to the html report. rsyncdirs (pathlist): list of (relative) paths to be rsynced for remote distributed testing. rsyncignore (pathlist): list of (relative) glob-style paths to be ignored for rsyncing. looponfailroots (pathlist): directories to check for changes
注意
pytest一定要放在项目的根目录,名字也要命名为pytest.ini
mark标记
作用:测试用例中添加了 @pytest.mark.web装饰器,如果不添加marks选项的话,就会报warnings 写法
[pytest] markers = app: Run the app case web: Run the web case
addopts
作用:addopts参数可以更改默认命令行选项,这个当我们在cmd输入一堆指令去执行用例的时候,就可以用该参数代替了,省去重复性的敲命令工作
比如:想测试完生成报告,失败重跑两次,如果在bash中写的话,命令会很长
pytest -v --reruns=2 --alluredir ./report --clean-alluredir
每次输入这么多,不太好记住,于是可以加到pytest.ini里
[pytest] markers = app: Run the app case web: Run the web case addopts = -v --reruns=2 --alluredir ./report --clean-alluredir
这样我下次打开cmd,直接输入pytest,它就能默认带上这些参数了
norecursedirs
作用:pytest 收集测试用例时,会递归遍历所有子目录,包括某些你明知道没必要遍历的目录,一般情况下项目的用例都放在case文件夹下,所以除了case文件夹,其他项目的路径都可以不必递归
默认设置: norecursedirs = .* build dist CVS _darcs {arch} *.egg 正确写法:在上面默认值后面加上除了case的所有路径,多个路径用空格隔开(一)
norecursedirs = .* build dist CVS _darcs {arch} *.egg API common configFile data logs report
自定义匹配规则
查看pytest -h 查看命令行参数找到 [pytest] ini-options
python_files (args) 匹配 python 用例文件, 如test_*.py、 *_test.py python_classes (args) 匹配 class 类名称 如Test*.py python_functions (args) 匹配函数和class里面方法 如test_*假如我们想把匹配规则改为函数名以best_*开头
[pytest] python_files = test_*.py python_classes = Test* python_functions = best_*
这样以后pytest就匹配的都是以best开头的用例了
查看更多关于Pytest(14)pytest.ini配置文件的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did126654