{
  "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",
      "args": [
        {
          "name": "Mode",
          "suggestions": [
            "plain",
            "rewrite"
          ]
        }
      ]
    },
    {
      "names": [
        "--basetemp"
      ],
      "description": "Base temporary directory for this test run.(warning: this directory is removed if it exists)",
      "args": [
        {
          "name": "Directory",
          "template": "folders"
        }
      ]
    },
    {
      "names": [
        "-c"
      ],
      "description": "Load configuration from `file` instead of trying to locate one of the implicit configuration files",
      "args": [
        {
          "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: '*')",
      "args": [
        {
          "name": "Glob",
          "isOptional": true
        }
      ]
    },
    {
      "names": [
        "--capture"
      ],
      "description": "Per-test capturing method",
      "args": [
        {
          "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)",
      "dependsOn": [
        "--color"
      ],
      "args": [
        {
          "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",
      "args": [
        {
          "name": "Color",
          "suggestions": [
            "yes",
            "no",
            "auto"
          ]
        }
      ]
    },
    {
      "names": [
        "--confcutdir"
      ],
      "description": "Only load conftest.py's relative to specified dir",
      "args": [
        {
          "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'",
      "args": [
        {
          "name": "Debug File Name",
          "isOptional": true
        }
      ]
    },
    {
      "names": [
        "--durations"
      ],
      "description": "Show N slowest setup/test durations (N=0 for all)",
      "args": [
        {
          "name": "N",
          "description": "(N=0 for all)"
        }
      ]
    },
    {
      "names": [
        "--durations-min"
      ],
      "description": "Minimal duration in seconds for inclusion in slowest list",
      "args": [
        {
          "name": "N"
        }
      ]
    },
    {
      "names": [
        "--deselect"
      ],
      "description": "Deselect item (via node id prefix) during collection (multi-allowed)",
      "isRepeatable": -1,
      "args": [
        {
          "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",
      "args": [
        {
          "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",
      "args": [
        {
          "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)",
      "isRepeatable": -1,
      "args": [
        {
          "name": "Path",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--ignore-glob"
      ],
      "description": "Ignore path pattern during collection (multi-allowed)",
      "isRepeatable": -1,
      "args": [
        {
          "name": "Path",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--import-mode"
      ],
      "description": "Prepend/append to sys.path when importing test modules and conftest files, default is to prepend",
      "args": [
        {
          "name": "Mode",
          "suggestions": [
            "prepend",
            "append",
            "importlib"
          ]
        }
      ]
    },
    {
      "names": [
        "--junit-xml"
      ],
      "description": "Create junit-xml style report file at given path",
      "args": [
        {
          "name": "Path",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--junit-prefix"
      ],
      "description": "Prepend prefix to classnames in junit-xml output",
      "args": [
        {
          "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: -k 'test_method or test_other' matches all test functions and classes whose name contains 'test_method' or 'test_other', while -k 'not test_method' matches those that don't contain 'test_method' in their names. -k 'not test_method and not test_other' will eliminate the matches. Additionally keywords are matched to classes and functions containing extra names in their 'extra_keyword_matches' set, as well as functions which have names assigned directly to them. The matching is case- insensitive",
      "args": [
        {
          "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",
      "args": [
        {
          "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",
      "args": [
        {
          "name": "Log Auto Indent Setting",
          "suggestions": [
            "true",
            "false"
          ]
        }
      ]
    },
    {
      "names": [
        "--log-cli-level"
      ],
      "description": "Cli logging level",
      "args": [
        {
          "name": "Log CLI Level",
          "suggestions": [
            "CRITICAL",
            "ERROR",
            "WARNING",
            "INFO",
            "DEBUG"
          ]
        }
      ]
    },
    {
      "names": [
        "--log-cli-format"
      ],
      "description": "Log format as used by the logging module",
      "args": [
        {
          "name": "Log CLI Format"
        }
      ]
    },
    {
      "names": [
        "--log-cli-date-format"
      ],
      "description": "Log date format as used by the logging module",
      "args": [
        {
          "name": "Log CLI Date Format"
        }
      ]
    },
    {
      "names": [
        "--log-date-format"
      ],
      "description": "Log date format as used by the logging module",
      "args": [
        {
          "name": "Log Date Format"
        }
      ]
    },
    {
      "names": [
        "--log-format"
      ],
      "description": "Log format as used by the logging module",
      "args": [
        {
          "name": "Log Format"
        }
      ]
    },
    {
      "names": [
        "--log-file"
      ],
      "description": "Path to a file where logging will be written to",
      "args": [
        {
          "name": "Log File Path",
          "template": "filepaths"
        }
      ]
    },
    {
      "names": [
        "--log-file-level"
      ],
      "description": "Log file logging level",
      "args": [
        {
          "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",
      "args": [
        {
          "name": "Log File Date Format"
        }
      ]
    },
    {
      "names": [
        "--log-file-format"
      ],
      "description": "Log format as used by the logging module",
      "args": [
        {
          "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",
      "args": [
        {
          "name": "Level",
          "suggestions": [
            "CRITICAL",
            "ERROR",
            "WARNING",
            "INFO",
            "DEBUG"
          ]
        }
      ]
    },
    {
      "names": [
        "-m"
      ],
      "description": "Only run tests matching given mark expression",
      "args": [
        {
          "name": "Mark Expression"
        }
      ]
    },
    {
      "names": [
        "--markers"
      ],
      "description": "Show markers (builtin, plugin and per-project ones)"
    },
    {
      "names": [
        "--maxfail"
      ],
      "description": "Exit after first num failures or errors",
      "args": [
        {
          "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`",
      "args": [
        {
          "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)",
      "isRepeatable": -1,
      "args": [
        {
          "name": "Plugin name"
        }
      ]
    },
    {
      "names": [
        "--pastebin"
      ],
      "description": "Send failed|all info to bpaste.net pastebin service",
      "args": [
        {
          "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",
      "args": [
        {
          "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 default (see --disable-warnings), 'N' can be used to reset the list. (default: 'fE')",
      "args": [
        {
          "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'",
      "args": [
        {
          "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",
      "args": [
        {
          "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",
      "args": [
        {
          "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",
      "isRepeatable": -1
    },
    {
      "names": [
        "--verbosity"
      ],
      "description": "Set verbosity. Default is 0",
      "args": [
        {
          "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",
      "args": [
        {
          "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",
      "isOptional": true,
      "template": "filepaths"
    }
  ]
}
