1.5 执行的查找原则和测试类及测试方法的命名

pytest根据一定的规则搜索并运行测试。标准的测试搜索规则如下:

(1)从一个或多个目录开始查找,可以在命令行指定文件名或目录名。如果未指定,则使用当前目录。

(2)在该目录和所有子目录下递归查找测试模块。

(3)测试模块指文件名为test_*.py或*_test.py的文件。

(4)在测试模块中查找以test_开头的函数名。

(5)查找名字以Test开头的类,其中,首先筛选掉包含__init__函数的类,再查找以test_开头类中的方法。

以上是标准的测试搜索规则,也可以更改它们,我们将在第12章讲解如何更改测试搜索的规则。

注意:所有包都要有__init__.py文件。pytest可以执行由Unittest框架所写的用例和方法。

通常测试模块(文件)、测试类、测试函数和方法的命名都遵循这个原则。如果不遵守这个原则就不会被搜索到,便不会有预期的效果。

我们举例说明,如图1-13所示。

(1)在test_first.py文件中新建一个测试方法。

(2)命名为t_2,输入打印语句。

(3)右击选择以pytest方式执行。

(4)执行结果如图1-13所示,只执行了一种方法。

图1-13 不以test_开头的测试方法不执行