1、命令行参数大全

语法格式:

pytest [options] [file_or_dir] [file_or_dir] [...]

使用 pytest -h 可以查看 pytest 的命令行参数,有 10 大类共 132 个。 

详见:Python pytest 132 个命令行参数用法 - 习久性成 - 博客园 

2、常见的命令行参数

-h :用于显示pytest的帮助信息,包括所有可用选项和参数的说明。运行pytest -h可以查看完整的帮助文档。

-v :用于在控制台输出详细的测试结果信息,包括测试用例的名称、执行状态(通过、失败、错误、跳过等)、执行时间以及任何与测试用例相关的输出或日志信息。

-q :用于启用"静默模式",在测试运行期间只显示测试结果的简要信息,而不会显示详细的执行过程和额外的输出。这在运行大量测试用例时可以减少冗余信息的显示,使结果更简洁。

-s :用于禁用捕获测试用用例的标准输出和标准错误流。默认情况下,pytest会捕获并隐藏这些输出,只显示测试结果。使用-s参数可以将这些输出显示在控制台上,方便调试和查看打印的信息。

3、[ -k EXPRESSION ]

`-k EXPRESSION` 是 pytest 参数中的一个选项,用于根据表达式匹配并运行测试用例。

当你运行 `pytest -k EXPRESSION` 命令时,pytest 会根据指定的表达式匹配测试用例的名称,并只运行匹配的测试用例。这个功能对于在大型测试套件中选择性地运行特定的测试用例非常有用。你可以使用通配符或正则表达式来构建匹配规则,以便选择性地运行你感兴趣的测试用例。

以下是一些示例:

运行名称中包含特定字符串的测试用例:`pytest -k "substring"`运行以特定字符串开头的测试用例:`pytest -k "prefix*"`运行匹配特定正则表达式的测试用例:`pytest -k "/regex/"`

通过使用 `pytest -k EXPRESSION`,你可以根据需要选择性地运行测试用例,而无需运行整个测试套件。

4、[-m MARKEXPR] 

`-m MARKEXPR` 是 pytest 参数中的一个选项,用于运行特定标记(mark)的测试用例。

它接受一个MARKEXPR参数,用于描述要匹配的标记条件。MARKEXPR可以是以下形式之一:

"mark1":匹配具有标记"mark1"的测试用例。"mark1 and mark2":匹配同时具有标记"mark1"和"mark2"的测试用例。"mark1 or mark2":匹配具有标记"mark1"或"mark2"的测试用例。"not mark1":匹配不具有标记"mark1"的测试用例。"mark1 and not mark2":匹配具有标记"mark1"但不具有标记"mark2"的测试用例。

通过使用-m参数,可以选择性地运行具有特定标记的测试用例,以便更加灵活地组织和执行测试。这对于只运行特定类型的测试用例或排除某些测试用例非常有用。

5、[--markers]

`--markers` 是 pytest 参数中的一个选项,用于显示 pytest 中标记(markers)的信息。

当你运行 `pytest --markers` 命令时,pytest 会显示内置的标记、插件提供的标记以及项目中定义的标记的信息。这些信息包括标记的名称、标记的描述以及标记的位置(内置、插件或项目)。

标记是一种用于标识测试用例特性或属性的机制。通过使用标记,你可以将测试用例分组、分类或者标记为特定的属性。 

通过查看标记信息,你可以了解项目中可用的标记以及它们的含义,从而更好地组织和管理测试用例。

6、[--tb=style]

`-tb=style` 是 pytest 参数中的一个选项,用于指定错误回溯(traceback)的显示样式。

当你运行 pytest --tb=style 命令时,你可以将 style 替换为不同的样式选项,以指定错误回溯的显示方式。以下是一些常用的样式选项:

`auto`:自动选择错误信息的输出格式,默认为这个选项。在终端上运行时,它会选择"short"格式;在非终端环境(如CI/CD工具)中运行时,它会选择"long"格式。`long`:输出详细的错误信息,包括完整的调用栈信息和源代码片段。`short`:输出简洁的错误信息,只包括最重要的信息,如错误类型和位置。`line`:只输出错误的一行摘要信息,不包括调用栈和源代码片段。`native`:类似于"long"格式,但会显示本地调用的源代码。`no`:不输出任何错误信息。

这些样式选项可以帮助你在测试运行期间更清晰地查看和理解错误回溯信息。

7、[-r chars]

`-r chars` 是 pytest 参数中的一个选项,用于指定在控制台输出中显示额外的测试结果信息,默认fE。

当你运行 `pytest -r chars` 命令时,pytest 会将额外的测试结果信息以字符的形式显示在控制台中。这些字符代表了不同类型的测试结果,例如:-ra 会显示passed之外的所有信息。

-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), 'N' can be used to reset the list. (default:

'fE').

通过使用 `pytest -r chars`,你可以在测试运行期间更直观地了解每个测试用例的结果,并快速识别出失败、错误或其他的情况。

8、[--capture=method]

`--capture=method` 是 pytest 参数中的一个选项,用于指定测试用例的输出捕获方法。

具体可选的值如下:

"fd":使用文件描述符(file descriptor)进行捕获。这是pytest的默认值。它将测试用例的输出重定向到文件中,并在需要时将其显示在控制台上。"sys":使用sys模块进行捕获。这种方法将测试用例的输出捕获到sys.stdout和sys.stderr中,并在测试运行结束后将其显示在控制台上。"no":禁用捕获,不会对测试用例的输出进行任何处理。测试用例的输出将直接显示在控制台上,而不进行捕获和重定向。"tee-sys":使用tee模块进行捕获。这种方法将测试用例的输出同时重定向到文件和sys.stdout/sys.stderr中,并在测试运行结束后将其显示在控制台上。

通过指定不同的捕获方法,可以控制测试用例输出的显示方式和保存方式。根据需要选择合适的方法可以方便调试和查看输出结果。

9、[-x, --exitfirst]

-x, --exitfirst :遇到第一个错误(error )或失败(failed )的测试用例后立即停止执行,不再执行后续的测试用例。

--lf, --last-failed :只运行上次失败的测试用例,而不运行其他的测试用例。

--ff, --failed-first :用于运行所有的测试用例,但会首先运行上次失败的测试用例。

这些选项对于快速定位和调试测试用例非常有用。

 reference:

Get Started — pytest documentation

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: