如何在 pytest 中运行测试方法而不报告为通过或失败?
我们可以使用 pytest 运行测试方法而不将其报告为通过或失败。此测试方法通常用作先决条件。Pytest 是 Python 中的一个测试框架。要安装 pytest,我们需要使用命令 **pip install pytest**。安装后,我们可以使用命令 **pytest –version** 验证 Python 是否已安装。应该知道 pytest 的版本。
Pytest 可用于创建和执行测试用例。它可用于广泛的测试,例如 API、UI、数据库等等。pytest 的测试文件有一个命名约定,即以 **test**_ 开头或以 _**test** 结尾,并且每一行代码都应该在一个方法内,该方法的名称应该以 **test** 关键字开头。此外,每个方法都应该具有唯一的名称。
为了打印控制台日志,我们需要使用命令 **py.test –v –s**。同样,如果我们想从特定的 pytest 文件运行测试,命令是 **py.test <文件名> -v**。
Pytest 提供了在测试方法上使用标记的功能。标记用于为测试方法提供属性。一些默认标记是 skip、xfail 和 parametrize。此外,根据我们的需要,可以有更多自定义的标记。
在某些情况下,由于应用程序中的已知错误或某个特定功能仍在开发中,测试方法可能会失败。但是该测试方法不能从运行中排除,因为它有一些前提条件。pytest 测试框架提供了在不报告为通过或失败的情况下运行测试方法的选项,方法是使用 **xfail** 标记。
xfail 标记与测试方法关联,语法如下:**@py.test.mark.xfail**。此外,要使用标记,我们必须将 **import pytest** 添加到我们的测试文件。
让我们考虑一个包含测试方法的 pytest 文件。
import pytest @pytest.mark.loan @pytest.mark.xfail def test_CalculateLoan(): print("Loan calculation") def test_CalculateLease(): print("Lease calculation")
让我们考虑另一个包含测试方法的 pytest 文件。
import pytest @pytest.mark.loan @pytest.mark.xfail def test_CalculateRepay(): print("Loan calculation") def test_FindLease(): print("Lease search")
现在,要运行所有测试用例,我们需要使用命令 **py.test –v**。带有 **xfail** 标记的测试方法将包含在执行中。在这种情况下,**CalculateLoan()** 和 **CalculateRepay()** 将包含在运行中,但在执行后将不会报告通过/失败的结果。