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代表测试失败,dot(.)代表测试成功。
在这下面,我们可以看到失败的测试的细节。它将显示测试在哪个语句上失败。在我们的例子中,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 的文件。