vscode中配置pytest
在测试用例中使用print的设置方法
零基础1小时快速入门pytest自动化测试教程,全套项目框架实战
在setting.json中输入一下内容:
"python.testing.pytestArgs": [".", # 初始值为所有,理论上有了下面的,就不应该有该项目?可以考虑存在和不存在,查看对测试结果的影响"--capture=no", # 表示控制台可以print输出"-q", # 表示简化输出"-disable-warnings" # 表示不显示警告信息], "python.testing.unittestEnabled": false,"python.testing.nosetestsEnabled": false,"python.testing.pytestEnabled": true,"python.testing.promptToConfigure": false,"python.testing.autoTestDiscoverOnSaveEnabled": false,
其中:"--capture=no"表示pytest不捕获测试用例中的print,那么在测试用例使用print时,就可以直接在控制台显示出来
介绍几个常用的参数:
-q
: 简化结果信息,不会显示每个用例的文件名等;-s
:允许在结果中显示标准输出,比如你在用例中的打印信息,默认在结果中不会显示标准输出;--capture=no
:与-s
效果一样,主要演示一下带参数值的写法;-m mark
:指定带相应标记的用例。用于演示不带等号的参数写法。
禁用警告信息
--disable-warnings
在python.testing.pytestArgs中添加如上信息,就可以禁用警告信息了。
若是想了解pytest中所有的命令行信息,可以使用:pytest --help,内容如下:
usage: pytest [options] [file_or_dir] [file_or_dir] [...]positional arguments:file_or_dirgeneral:-k EXPRESSION only run tests which match the given substringexpression. An expression is a python evaluatableexpression where all names are substring-matched againsttest names and their parent classes. Example: -k'test_method or test_other' matches all test functionsand classes whose name contains 'test_method' or'test_other', while -k 'not test_method' matches thosethat don't contain 'test_method' in their names. -k 'nottest_method and not test_other' will eliminate thematches. Additionally keywords are matched to classesand functions containing extra names in their'extra_keyword_matches' set, as well as functions whichhave names assigned directly to them.-m MARKEXPR only run tests matching given mark expression. example:-m 'mark1 and not mark2'.--markers show markers (builtin, plugin and per-project ones).-x, --exitfirst exit instantly on first error or failed test.--maxfail=num exit after first num failures or errors.--strict-markers, --strictmarkers not registered in the `markers` section of theconfiguration file raise errors.-c file load configuration from `file` instead of trying tolocate one of the implicit configuration files.--continue-on-collection-errorsForce test execution even if collection errors occur.--rootdir=ROOTDIR Define root directory for tests. Can be relative path:'root_dir', './root_dir', 'root_dir/another_dir/';absolute path: '/home/user/root_dir'; path withvariables: '$HOME/root_dir'.--fixtures, --funcargsshow available fixtures, sorted by plugin appearance(fixtures with leading '_' are only shown with '-v')--fixtures-per-test show fixtures per test--import-mode={prepend,append}prepend/append to sys.path when importing test modules,default is to prepend.--pdb start the interactive Python debugger on errors orKeyboardInterrupt.--pdbcls=modulename:classnamestart a custom interactive Python debugger on errors.For example:--pdbcls=IPython.terminal.debugger:TerminalPdb--trace Immediately break when running each test.--capture=method per-test capturing method: one of fd|sys|no.-s shortcut for --capture=no.--runxfail report the results of xfail tests as if they were notmarked--lf, --last-failed rerun only the tests that failed at the last run (or allif none failed)--ff, --failed-first run all tests but run the last failures first. This mayre-order tests and thus lead to repeated fixturesetup/teardown--nf, --new-first run tests from new files first, then the rest of thetests sorted by file mtime--cache-show=[CACHESHOW]show cache contents, don't perform collection or tests.Optional argument: glob (default: '*').--cache-clear remove all cache contents at start of test run.--lfnf={all,none}, --last-failed-no-failures={all,none}which tests to run with no previously (known) failures.--sw, --stepwise exit on test failure and continue from last failing testnext time--stepwise-skip ignore the first failing test but stop on the nextfailing test--arraydiff Enable comparison of arrays to reference arrays storedin files--arraydiff-generate-path=ARRAYDIFF_GENERATE_PATHdirectory to generate reference files in, relative tolocation where py.test is run--arraydiff-reference-path=ARRAYDIFF_REFERENCE_PATHdirectory containing reference files, relative tolocation where py.test is run--arraydiff-default-format=ARRAYDIFF_DEFAULT_FORMATDefault format for the reference arrays (can be 'fits'or 'text' currently)reporting:--durations=N show N slowest setup/test durations (N=0 for all).-v, --verbose increase verbosity.-q, --quiet decrease verbosity.--verbosity=VERBOSE set verbosity. Default is 0.-r chars show extra test summary info as specified by chars:(f)ailed, (E)rror, (s)kipped, (x)failed, (X)passed,(p)assed, (P)assed with output, (a)ll except passed(p/P), or (A)ll. (w)arnings are enabled by default (see--disable-warnings).--disable-warnings, --disable-pytest-warningsdisable warnings summary-l, --showlocals show locals in tracebacks (disabled by default).--tb=style traceback print mode (auto/long/short/line/native/no).--show-capture={no,stdout,stderr,log,all}Controls how captured stdout/stderr/log is shown onfailed tests. Default is 'all'.--full-trace don't cut any tracebacks (default is to cut).--color=color color terminal output (yes/no/auto).--pastebin=mode send failed|all info to bpaste.net pastebin service.--junit-xml=path create junit-xml style report file at given path.--junit-prefix=str prepend prefix to classnames in junit-xml output--result-log=path DEPRECATED path for machine-readable result log.collection:--collect-only, --co only collect tests, don't execute them.--pyargs try to interpret all arguments as python packages.--ignore=path ignore path during collection (multi-allowed).--ignore-glob=path ignore path pattern during collection (multi-allowed).--deselect=nodeid_prefixdeselect item during collection (multi-allowed).--confcutdir=dir only load conftest.py's relative to specified dir.--noconftest Don't load any conftest.py files.--keep-duplicates Keep duplicate tests.--collect-in-virtualenvDon't ignore tests in a local virtualenv directory--doctest-modules run doctests in all .py modules--doctest-report={none,cdiff,ndiff,udiff,only_first_failure}choose another output format for diffs on doctestfailure--doctest-glob=pat doctests file matching pattern, default: test*.txt--doctest-ignore-import-errorsignore doctest ImportErrors--doctest-continue-on-failurefor a given doctest, continue to run after the firstfailuretest session debugging and configuration:--basetemp=dir base temporary directory for this test run.(warning:this directory is removed if it exists)--version display pytest lib version and import information.-h, --help show help message and configuration info-p name early-load given plugin module name or entry point(multi-allowed). To avoid loading of plugins, use the`no:` prefix, e.g. `no:doctest`.--trace-config trace considerations of conftest.py files.--debug store internal tracing debug information in'pytestdebug.log'.-o OVERRIDE_INI, --override-ini=OVERRIDE_INIoverride ini option with "option=value" style, e.g. `-oxfail_strict=True -o cache_dir=cache`.--assert=MODE Control assertion debugging tools. 'plain' performs noassertion debugging. 'rewrite' (the default) rewritesassert statements in test modules on import to provideassert expression information.--setup-only only setup fixtures, do not execute tests.--setup-show show setup of fixtures while executing tests.--setup-plan show what fixtures and tests would be executed but don'texecute anything.pytest-warnings:-W PYTHONWARNINGS, --pythonwarnings=PYTHONWARNINGSset which warnings to report, see -W option of pythonitself.logging:--no-print-logs disable printing caught logs on failed tests.--log-level=LOG_LEVELlogging level used by the logging module--log-format=LOG_FORMATlog format as used by the logging module.--log-date-format=LOG_DATE_FORMATlog date format as used by the logging module.--log-cli-level=LOG_CLI_LEVELcli logging level.--log-cli-format=LOG_CLI_FORMATlog format as used by the logging module.--log-cli-date-format=LOG_CLI_DATE_FORMATlog date format as used by the logging module.--log-file=LOG_FILE path to a file when logging will be written to.--log-file-level=LOG_FILE_LEVELlog file logging level.--log-file-format=LOG_FILE_FORMATlog format as used by the logging module.--log-file-date-format=LOG_FILE_DATE_FORMATlog date format as used by the logging module.--log-auto-indent=LOG_AUTO_INDENTAuto-indent multiline messages passed to the loggingmodule. Accepts true|on, false|off or an integer.Hypothesis:--hypothesis-profile=HYPOTHESIS_PROFILELoad in a registered hypothesis.settings profile--hypothesis-verbosity={quiet,normal,verbose,debug}Override profile with verbosity setting specified--hypothesis-show-statisticsConfigure when statistics are printed--hypothesis-seed=HYPOTHESIS_SEEDSet a seed to use for all Hypothesis testsastropy header options:--astropy-header Show the pytest-astropy header--astropy-header-packages=ASTROPY_HEADER_PACKAGESComma-separated list of packages to include in theheadercustom options:--doctest-plus enable running doctests with additional features notfound in the normal doctest plugin--doctest-rst Enable running doctests in .rst documentation. This isno longer recommended, use --doctest-glob instead.--text-file-format=TEXT_FILE_FORMATText file format for narrative documentation. Optionsaccepted are 'txt', 'tex', and 'rst'. This is no longerrecommended, use --doctest-glob instead.--doctest-plus-atol=DOCTEST_PLUS_ATOLset the absolute tolerance for float comparison--doctest-plus-rtol=DOCTEST_PLUS_RTOLset the relative tolerance for float comparison--doctest-only Test only doctests. Implies usage of doctest-plus.--open-files fail if any test leaves files open--remote-data=[REMOTE_DATA]run tests with online data[pytest] ini-options in the first pytest.ini|tox.ini|setup.cfg file found:markers (linelist): markers for test functionsempty_parameter_set_mark (string):default marker for empty parametersetsnorecursedirs (args): directory patterns to avoid for recursiontestpaths (args): directories to search for tests when no files ordirectories are given in the command line.usefixtures (args): list of default fixtures to be used with this projectpython_files (args): glob-style file patterns for Python test modulediscoverypython_classes (args):prefixes or glob names for Python test class discoverypython_functions (args):prefixes or glob names for Python test function andmethod discoverydisable_test_id_escaping_and_forfeit_all_rights_to_community_support (bool):disable string escape non-ascii characters, might causeunwanted side effects(use at your own risk)console_output_style (string):console output: "classic", or with additional progressinformation ("progress" (percentage) | "count").xfail_strict (bool): default for the strict parameter of xfail markers whennot given explicitly (default: False)enable_assertion_pass_hook (bool):Enables the pytest_assertion_pass hook.Make sure todelete any previously generated pyc cache files.junit_suite_name (string):Test suite name for JUnit reportjunit_logging (string):Write captured log messages to JUnit report: one ofno|system-out|system-errjunit_log_passing_tests (bool):Capture log information for passing tests to JUnitreport:junit_duration_report (string):Duration time to report: one of total|calljunit_family (string):Emit XML for schema: one of legacy|xunit1|xunit2doctest_optionflags (args):option flags for doctestsdoctest_encoding (string):encoding used for doctest filescache_dir (string): cache directory path.filterwarnings (linelist):Each line specifies a pattern forwarnings.filterwarnings. Processed after-W/--pythonwarnings.log_print (bool): default value for --no-print-logslog_level (string): default value for --log-levellog_format (string): default value for --log-formatlog_date_format (string):default value for --log-date-formatlog_cli (bool): enable log display during test run (also known as "livelogging").log_cli_level (string):default value for --log-cli-levellog_cli_format (string):default value for --log-cli-formatlog_cli_date_format (string):default value for --log-cli-date-formatlog_file (string): default value for --log-filelog_file_level (string):default value for --log-file-levellog_file_format (string):default value for --log-file-formatlog_file_date_format (string):default value for --log-file-date-formatlog_auto_indent (string):default value for --log-auto-indentfaulthandler_timeout (string):Dump the traceback of all threads if a test takes morethan TIMEOUT seconds to finish. Not available onWindows.addopts (args): extra command line optionsminversion (string): minimally required pytest versionastropy_header (bool):Show the pytest-astropy headerastropy_header_packages (linelist):Comma-separated list of packages to include in theheadertext_file_format (string):Default format for docs. This is no longer recommended,use --doctest-glob instead.doctest_optionflags (args):option flags for doctestsdoctest_plus (string):enable running doctests with additional features notfound in the normal doctest plugindoctest_norecursedirs (args):like the norecursedirs option but applies only todoctest collectiondoctest_rst (string): Run the doctests in the rst documentationdoctest_plus_atol (string):set the absolute tolerance for float comparisondoctest_plus_rtol (string):set the relative tolerance for float comparisontext_file_comment_chars (linelist):list of pairs in format file_extension=comment_chars,eg: .rst=..open_files_ignore (args):when used with the --open-files option, allowsspecifying names of files that may be ignored when leftopen between tests--files in this list are matched maybe specified by their base name (ignoring their fullpath) or by absolute pathremote_data_strict (bool):If 'True', tests will fail if they attempt to access theinternet but are not explicitly marked with'remote_data'environment variables:PYTEST_ADDOPTS extra command line optionsPYTEST_PLUGINS comma-separated plugins to load during startupPYTEST_DISABLE_PLUGIN_AUTOLOAD set to disable plugin auto-loadingPYTEST_DEBUG set to enable debug tracing of pytest's internalsto see available markers type: pytest --markers to see available fixtures type: pytest --fixtures (shown according to specified file_or_dir or current dir if not specified; fixtures with leading '_' are only shown with the '-v' option