使用pip安装pytest
第三方包指的是独立于Python核心的库
更新pip
python -m pip install --upgrade pip
安装pytest
python -m pip install --user pytest
如果在执行这个命令时遇到麻烦, 可以尝试:
python -m pip install pytest
以上安装及更新均在cmd中输入完成
单元测试和测试用例
一种最简单的测试是单元测试,用于合适函数的某个方面没有问题。
测试用例是一组单元测试,这些单元测试一道合适函数在各种情况下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情况的测试。
全覆盖测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。对于大型项目,要进行全覆盖测试可能很难。
可通过的测试
使用pytest进行测试,会让单元测试编写起来非常简单。我们将编写一个测试函数,它会调用要测试的函数,并做出有关返回值的断言。如果断言正确,表示测试通过;如果断言不正确,表示测试未通过。
name_function.py
def get_formatted_name(first, last): """生成规范的名字""" full_name = f"{first} {last}" return full_name.title()
test_name_function.py
from name_function import get_formatted_name def test_first_last_name(): """能够正确处理像Janis Joplin 这样的名字吗""" formatted_name = get_formatted_name('janis', 'joplin') assert formatted_name == 'Janis Joplin'
测试文件的名称很重要,必须以test_打头。当你让pytest运行测试时,它将查找以test_打头的文件,并运行其中的所有测试。
测试函数必须以test_打头,在测试过程中,pytest将找出并运行所有以test_打头的函数,此外,测试函数的名称应该比典型的函数名更长,更具描述性。
assert表示断言,断言就是声称满足特定的条件
运行测试
如果直接运行文件test_name_function.py,将不会有任何输出,因为我们没有调用这个测试函数。相反,应该让pytest替我们运行这个测试文件。
为此,打开一个终端窗口,pycharm为Alt+F12,在终端窗口执行命令pytest
tip:如果不知道如何在终端窗口中切换到正确的文件夹,请参阅1.5节。另外,如果出现一条消息,提示没有找到命令pytest,请执行