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
的文件。
Pytest教程目录索引
- Pytest 教程
- Pytest 简介
- Pytest 环境搭建
- Pytest 标识测试文件和测试函数
- Pytest 着手编写基本测试
- Pytest 文件执行
- Pytest 执行一部分测试套件
- Pytest 测试名称的子字符串匹配
- Pytest 分组测试
- Pytest fixture
- Pytest Conftest.py
- Pytest 参数化测试
- Pytest 选择xfail测试或跳过测试
- Pytest 在N个测试失败后停止测试套件
- Pytest 并行运行测试
- Pytest 以XML格式执行测试的结果
- Pytest 总结