- Pytest 教程
- Pytest - 主页
- Pytest - 简介
- Pytest - 环境设置
- 识别测试文件和函数
- Pytest - 从基本测试开始
- Pytest - 文件执行
- 执行测试套件子集
- 测试名称的子字符串匹配
- Pytest - 分组测试
- Pytest - 辅助函数
- Pytest - Conftest.py
- Pytest - 测试参数化
- Pytest - Xfail/Skip 测试
- 在 N 次测试失败后停止测试套件
- Pytest - 并行运行测试
- XML 中的测试执行结果
- Pytest - 总结
- Pytest - 结论
- Pytest 有用资源
- Pytest - 快速指南
- Pytest - 有用资源
- Pytest - 讨论
Pytest - 从基本测试开始
现在,我们将从我们的第一个 pytest 程序开始。我们首先创建一个目录,然后在目录中创建我们的测试文件。
让我们按照下面显示的步骤操作 −
创建一个名为automation的新目录,并在命令行中导航到该目录。
创建一个名为test_square.py的文件,并将以下代码添加到该文件。
import math def test_sqrt(): num = 25 assert math.sqrt(num) == 5 def testsquare(): num = 7 assert 7*7 == 40 def tesequality(): assert 10 == 11
使用以下命令运行测试 −
pytest
上述命令将生成以下输出 −
test_square.py .F ============================================== FAILURES ============================================== ______________________________________________ testsquare _____________________________________________ def testsquare(): num=7 > assert 7*7 == 40 E assert (7 * 7) == 40 test_square.py:9: AssertionError ================================= 1 failed, 1 passed in 0.06 seconds =================================
查看结果的第一行。它显示文件名和结果。F 表示测试失败,点(.) 表示测试成功。
在该行下方,我们可以看到失败测试的详细信息。它将显示测试在哪个语句处失败。在我们的示例中,7*7 与 40 进行相等性比较,这是错误的。最后,我们可以看到测试执行摘要,1 个失败,1 个通过。
不会执行函数 tesequality,因为 pytest 不会将其视为测试,因为其名称不是test*格式。
现在,执行以下命令并再次查看结果 −
pytest -v
-v 增加详细信息。
test_square.py::test_sqrt PASSED test_square.py::testsquare FAILED ============================================== FAILURES ============================================== _____________________________________________ testsquare _____________________________________________ def testsquare(): num = 7 > assert 7*7 == 40 E assert (7 * 7) == 40 test_square.py:9: AssertionError ================================= 1 failed, 1 passed in 0.04 seconds =================================
现在结果更能说明失败的测试和通过的测试。
注意 − pytest 命令将执行当前目录和子目录中所有格式为test_*或*_test的文件。
广告