{
  "name": "pytest",
  "options": [
    {
      "names": [
        "--assert"
      ],
      "description": "Control assertion debugging tools. 'plain' performs no assertion debugging. 'rewrite' (the default) rewrites assert statements in test modules on import to provide assert expression information",
      "takes_arg": true,
      "arg": {
        "name": "Mode",
        "suggestions": [
          "plain",
          "rewrite"
        ]
      }
    },
    {
      "names": [
        "--basetemp"
      ],
      "description": "Base temporary directory for this test run.(warning: this directory is removed if it exists)",
      "takes_arg": true,
      "arg": {
        "name": "Directory",
        "template": "folders"
      }
    },
    {
      "names": [
        "-c"
      ],
      "description": "Load configuration from `file` instead of trying to locate one of the implicit configuration files",
      "takes_arg": true,
      "arg": {
        "name": "File",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--cache-clear"
      ],
      "description": "Remove all cache contents at start of test run"
    },
    {
      "names": [
        "--cache-show"
      ],
      "description": "Show cache contents, don't perform collection or tests. Optional argument: glob (default: '*')",
      "takes_arg": true,
      "arg": {
        "name": "Glob"
      }
    },
    {
      "names": [
        "--capture"
      ],
      "description": "Per-test capturing method",
      "takes_arg": true,
      "arg": {
        "name": "Method",
        "description": "One of fd|sys|no|tee-sys",
        "suggestions": [
          "fd",
          "sys",
          "no",
          "tee-sys"
        ]
      }
    },
    {
      "names": [
        "--code-highlight"
      ],
      "description": "Whether code should be highlighted (only if --color is also enabled)",
      "takes_arg": true,
      "arg": {
        "name": "Highlight",
        "suggestions": [
          "yes",
          "no"
        ]
      }
    },
    {
      "names": [
        "--co",
        "--collect-only"
      ],
      "description": "Only collect tests, don't execute them"
    },
    {
      "names": [
        "--collect-in-virtualenv"
      ],
      "description": "Don't ignore tests in a local virtualenv directory"
    },
    {
      "names": [
        "--color"
      ],
      "description": "Color terminal output",
      "takes_arg": true,
      "arg": {
        "name": "Color",
        "suggestions": [
          "yes",
          "no",
          "auto"
        ]
      }
    },
    {
      "names": [
        "--confcutdir"
      ],
      "description": "Only load conftest.py's relative to specified dir",
      "takes_arg": true,
      "arg": {
        "name": "Dir",
        "template": "folders"
      }
    },
    {
      "names": [
        "--continue-on-collection-errors"
      ],
      "description": "Force test execution even if collection errors occur"
    },
    {
      "names": [
        "--debug"
      ],
      "description": "Store internal tracing debug information in this log file. This file is opened with 'w' and truncated as a result, care advised. Defaults to 'pytestdebug.log'",
      "takes_arg": true,
      "arg": {
        "name": "Debug File Name"
      }
    },
    {
      "names": [
        "--durations"
      ],
      "description": "Show N slowest setup/test durations (N=0 for all)",
      "takes_arg": true,
      "arg": {
        "name": "N",
        "description": "(N=0 for all)"
      }
    },
    {
      "names": [
        "--durations-min"
      ],
      "description": "Minimal duration in seconds for inclusion in slowest list",
      "takes_arg": true,
      "arg": {
        "name": "N"
      }
    },
    {
      "names": [
        "--deselect"
      ],
      "description": "Deselect item (via node id prefix) during collection (multi-allowed)",
      "takes_arg": true,
      "arg": {
        "name": "nodeid_prefix"
      }
    },
    {
      "names": [
        "--disable-warnings",
        "--disable-pytest-warnings"
      ],
      "description": "Disable warnings summary"
    },
    {
      "names": [
        "--doctest-continue-on-failure"
      ],
      "description": "For a given doctest, continue to run after the first failure"
    },
    {
      "names": [
        "--doctest-ignore-import-errors"
      ],
      "description": "Ignore doctest ImportErrors"
    },
    {
      "names": [
        "--doctest-modules"
      ],
      "description": "Run doctests in all .py modules"
    },
    {
      "names": [
        "--doctest-report"
      ],
      "description": "Choose another output format for diffs on doctest failure",
      "takes_arg": true,
      "arg": {
        "name": "Output format",
        "description": "None,cdiff,ndiff,udiff,only_first_failure",
        "suggestions": [
          "none",
          "cdiff",
          "ndiff",
          "udiff",
          "only_first_failure"
        ]
      }
    },
    {
      "names": [
        "--doctest-glob"
      ],
      "description": "Doctests file matching pattern, default: test*.txt",
      "takes_arg": true,
      "arg": {
        "name": "Pattern"
      }
    },
    {
      "names": [
        "--exitfirst",
        "-x"
      ],
      "description": "Exit instantly on first error or failed test"
    },
    {
      "names": [
        "--failed-first",
        "--ff"
      ],
      "description": "Run all tests, but run the last failures first"
    },
    {
      "names": [
        "--fixtures"
      ],
      "description": "Shows builtin and custom fixtures. Note that this command omits fixtures with leading _ unless the -v option is added"
    },
    {
      "names": [
        "--fixtures-per-test"
      ],
      "description": "Show fixtures per test"
    },
    {
      "names": [
        "--full-trace"
      ],
      "description": "Don't cut any tracebacks (default is to cut)"
    },
    {
      "names": [
        "--help",
        "-h"
      ],
      "description": "This shows help on command line and config-line options"
    },
    {
      "names": [
        "--ignore"
      ],
      "description": "Ignore path during collection (multi-allowed)",
      "takes_arg": true,
      "arg": {
        "name": "Path",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--ignore-glob"
      ],
      "description": "Ignore path pattern during collection (multi-allowed)",
      "takes_arg": true,
      "arg": {
        "name": "Path",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--import-mode"
      ],
      "description": "Prepend/append to sys.path when importing test modules and conftest files, default is to prepend",
      "takes_arg": true,
      "arg": {
        "name": "Mode",
        "suggestions": [
          "prepend",
          "append",
          "importlib"
        ]
      }
    },
    {
      "names": [
        "--junit-xml"
      ],
      "description": "Create junit-xml style report file at given path",
      "takes_arg": true,
      "arg": {
        "name": "Path",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--junit-prefix"
      ],
      "description": "Prepend prefix to classnames in junit-xml output",
      "takes_arg": true,
      "arg": {
        "name": "Str",
        "description": "String to prepend"
      }
    },
    {
      "names": [
        "-k"
      ],
      "description": "Only run tests which match the given substring expression. An expression is a python evaluatable expression where all names are substring-matched against test names and their parent classes. Example: ",
      "takes_arg": true,
      "arg": {
        "name": "Expression",
        "description": "Ex: 'test_method or test_other'"
      }
    },
    {
      "names": [
        "--keep-duplicates"
      ],
      "description": "Keep duplicate tests"
    },
    {
      "names": [
        "--showlocals",
        "-l"
      ],
      "description": "Show locals in tracebacks (disabled by default)"
    },
    {
      "names": [
        "--last-failed-no-failures",
        "--lfnf"
      ],
      "description": "Which tests to run with no previously (known) failures",
      "takes_arg": true,
      "arg": {
        "name": "Tests",
        "suggestions": [
          "all",
          "none"
        ]
      }
    },
    {
      "names": [
        "--last-failed",
        "--lf"
      ],
      "description": "Rerun only the tests that failed at the last run (or all if none failed)"
    },
    {
      "names": [
        "--log-auto-indent"
      ],
      "description": "Auto-indent multiline messages passed to the logging module. Accepts true|on, false|off or an integer",
      "takes_arg": true,
      "arg": {
        "name": "Log Auto Indent Setting",
        "suggestions": [
          "true",
          "false"
        ]
      }
    },
    {
      "names": [
        "--log-cli-level"
      ],
      "description": "Cli logging level",
      "takes_arg": true,
      "arg": {
        "name": "Log CLI Level",
        "suggestions": [
          "CRITICAL",
          "ERROR",
          "WARNING",
          "INFO",
          "DEBUG"
        ]
      }
    },
    {
      "names": [
        "--log-cli-format"
      ],
      "description": "Log format as used by the logging module",
      "takes_arg": true,
      "arg": {
        "name": "Log CLI Format"
      }
    },
    {
      "names": [
        "--log-cli-date-format"
      ],
      "description": "Log date format as used by the logging module",
      "takes_arg": true,
      "arg": {
        "name": "Log CLI Date Format"
      }
    },
    {
      "names": [
        "--log-date-format"
      ],
      "description": "Log date format as used by the logging module",
      "takes_arg": true,
      "arg": {
        "name": "Log Date Format"
      }
    },
    {
      "names": [
        "--log-format"
      ],
      "description": "Log format as used by the logging module",
      "takes_arg": true,
      "arg": {
        "name": "Log Format"
      }
    },
    {
      "names": [
        "--log-file"
      ],
      "description": "Path to a file where logging will be written to",
      "takes_arg": true,
      "arg": {
        "name": "Log File Path",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "--log-file-level"
      ],
      "description": "Log file logging level",
      "takes_arg": true,
      "arg": {
        "name": "Log File Level",
        "suggestions": [
          "CRITICAL",
          "ERROR",
          "WARNING",
          "INFO",
          "DEBUG"
        ]
      }
    },
    {
      "names": [
        "--log-file-date-format"
      ],
      "description": "Log date format as used by the logging module",
      "takes_arg": true,
      "arg": {
        "name": "Log File Date Format"
      }
    },
    {
      "names": [
        "--log-file-format"
      ],
      "description": "Log format as used by the logging module",
      "takes_arg": true,
      "arg": {
        "name": "Log File Format"
      }
    },
    {
      "names": [
        "--log-level"
      ],
      "description": "Level of messages to catch/display. Not set by default, so it depends on the root/parent log handler's effective level, where it is `WARNING` by default",
      "takes_arg": true,
      "arg": {
        "name": "Level",
        "suggestions": [
          "CRITICAL",
          "ERROR",
          "WARNING",
          "INFO",
          "DEBUG"
        ]
      }
    },
    {
      "names": [
        "-m"
      ],
      "description": "Only run tests matching given mark expression",
      "takes_arg": true,
      "arg": {
        "name": "Mark Expression"
      }
    },
    {
      "names": [
        "--markers"
      ],
      "description": "Show markers (builtin, plugin and per-project ones)"
    },
    {
      "names": [
        "--maxfail"
      ],
      "description": "Exit after first num failures or errors",
      "takes_arg": true,
      "arg": {
        "name": "num"
      }
    },
    {
      "names": [
        "--new-first",
        "--nf"
      ],
      "description": "Run tests from new files first, then the rest of the tests sorted by file mtime"
    },
    {
      "names": [
        "--noconftest"
      ],
      "description": "Don't load any conftest.py files"
    },
    {
      "names": [
        "--no-header"
      ],
      "description": "Disable header"
    },
    {
      "names": [
        "--no-summary"
      ],
      "description": "Disable summary"
    },
    {
      "names": [
        "--override-ini",
        "-o"
      ],
      "description": "Override ini option with `option=value` style`",
      "takes_arg": true,
      "arg": {
        "name": "Override INI",
        "description": "Ex: `-o xfail_strict=True -o cache_dir=cache"
      }
    },
    {
      "names": [
        "-p"
      ],
      "description": "Early-load given plugin module name or entry point (multi-allowed)",
      "takes_arg": true,
      "arg": {
        "name": "Plugin name"
      }
    },
    {
      "names": [
        "--pastebin"
      ],
      "description": "Send failed|all info to bpaste.net pastebin service",
      "takes_arg": true,
      "arg": {
        "name": "mode",
        "suggestions": [
          "failed",
          "all"
        ]
      }
    },
    {
      "names": [
        "--pdb"
      ],
      "description": "Start the interactive Python debugger on errors or KeyboardInterrupt"
    },
    {
      "names": [
        "--pdbcls"
      ],
      "description": "Specify a custom interactive Python debugger for use with --pdb",
      "takes_arg": true,
      "arg": {
        "name": "modulename:classname",
        "description": "Ex: --pdbcls=IPython.terminal.debugger:TerminalPdb"
      }
    },
    {
      "names": [
        "--pyargs"
      ],
      "description": "Try to interpret all arguments as python packages"
    },
    {
      "names": [
        "--quiet",
        "-q"
      ],
      "description": "Decrease verbosity"
    },
    {
      "names": [
        "-r"
      ],
      "description": "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 d",
      "takes_arg": true,
      "arg": {
        "name": "chars",
        "suggestions": [
          "a",
          "A",
          "E",
          "f",
          "N",
          "p",
          "P",
          "s",
          "w",
          "x",
          "X"
        ]
      }
    },
    {
      "names": [
        "--rootdir"
      ],
      "description": "Define root directory for tests. Can be relative path: 'root_dir', './root_dir', 'root_dir/another_dir/'; absolute path: '/home/user/root_dir'; path with variables:'$HOME/root_dir'",
      "takes_arg": true,
      "arg": {
        "name": "Root Dir",
        "template": "folders"
      }
    },
    {
      "names": [
        "--runxfail"
      ],
      "description": "Report the results of xfail tests as if they were not marked"
    },
    {
      "names": [
        "-s"
      ],
      "description": "Shortcut for --capture=no"
    },
    {
      "names": [
        "--setup-only"
      ],
      "description": "Only setup fixtures, do not execute tests"
    },
    {
      "names": [
        "--setup-show"
      ],
      "description": "Show setup of fixtures while executing tests"
    },
    {
      "names": [
        "--setup-plan"
      ],
      "description": "Show what fixtures and tests would be executed but don't execute anything"
    },
    {
      "names": [
        "--show-capture"
      ],
      "description": "Controls how captured stdout/stderr/log is shown on failed tests",
      "takes_arg": true,
      "arg": {
        "name": "Capture method",
        "suggestions": [
          "no",
          "stdout",
          "stderr",
          "log",
          "all"
        ]
      }
    },
    {
      "names": [
        "--stepwise",
        "--sw"
      ],
      "description": "Exit on test failure and continue from last failing test next time"
    },
    {
      "names": [
        "--stepwise-skip",
        "--sw-skip"
      ],
      "description": "Ignore the first failing test but stop on the next failing test"
    },
    {
      "names": [
        "--strict"
      ],
      "description": "Alias to --strict-markers"
    },
    {
      "names": [
        "--strict-config"
      ],
      "description": "Any warnings encountered while parsing the `pytest` section of the configuration file raise errors"
    },
    {
      "names": [
        "--strict-markers"
      ],
      "description": "Markers not registered in the `markers` section of the configuration file raise errors"
    },
    {
      "names": [
        "--tb"
      ],
      "description": "Traceback print mode",
      "takes_arg": true,
      "arg": {
        "name": "Traceback print mode",
        "suggestions": [
          "auto",
          "long",
          "short",
          "line",
          "native",
          "no"
        ]
      }
    },
    {
      "names": [
        "--trace"
      ],
      "description": "Immediately break when running each test"
    },
    {
      "names": [
        "--trace-config"
      ],
      "description": "Trace considerations of conftest.py files"
    },
    {
      "names": [
        "--verbose",
        "-v"
      ],
      "description": "Increase verbosity"
    },
    {
      "names": [
        "--verbosity"
      ],
      "description": "Set verbosity. Default is 0",
      "takes_arg": true,
      "arg": {
        "name": "Verbosity level"
      }
    },
    {
      "names": [
        "--version",
        "-V"
      ],
      "description": "Display pytest version and information about plugins. When given twice, also display information about plugins"
    },
    {
      "names": [
        "--pythonwarnings",
        "-W"
      ],
      "description": "Set which warnings to report, see -W option of python itself",
      "takes_arg": true,
      "arg": {
        "name": "Warnings to report"
      }
    }
  ],
  "args": [
    {
      "name": "File or Directory",
      "description": "The test file or directory you want to run pytest on. If omitted, pytest will run all       of the files of the form test_*.py or *_test.py in the current directory       and its subdirectories",
      "template": "filepaths"
    }
  ]
}
