运行pytest
Posted mr-chenshuai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运行pytest相关的知识,希望对你有一定的参考价值。
pytest有点很多,易读、易写、易运行、失败信息详细等等。
运行pytest
- 不提供参数时,pytest会在当前目录以及子目录下寻找测试文件,然后运行找到的测试代码
- 提供一个或者多个目录名、文件名,pytest会逐个查找并运行测试
- 为了找到所有的测试代码,pytest会递归遍历每个目录以及子目录
在test文件夹下创建
test_three.py
import collections Task = collections.namedtuple("Task", ["name", "age", "salary"]) Task.__new__.__defaults__ = (None, None, None) def test_defaults(): t1 = Task() t2 = Task(None, None, None) assert t1 ==t2 def test_member_access(): t = Task("bone", "26") assert t.name == "bone" assert t.age == "26" assert t.salary == None
test_four.py
import collections Task = collections.namedtuple("Task", ["name", "age", "salary"]) Task.__new__.__defaults__ = (None, None, None) def test_asdict(): t_task = Task("bone", "26", "3000") t_dict = t_task._asdict() expected = { "name": "bone", "age": "26", "salary": "3000" } assert t_dict == expected def test_replace(): t_before = Task("bone", "26", "3000") t_after = t_before._replace(age="25", salary="222") t_expected = Task("bone", "25", "222") assert t_after == t_expected
此时目录结构如下:
在ch1直接运行pytest,没有指定参数,那么会将4个测试文件都运行
指定测试文件或者目录
pytest搜索测试文件和测试用例的过程为测试搜索(test discovery)
遵守pytest的命名规则,pytest就能自动搜索所有待执行 测试用例
命令规则:
- 测试文件以test_开头或者_test结尾:test_something.py、something_test.py
- 测试函数、测试类方法以test_开头:test_something
- 测试类开头为Test:TestSomething
测试文件和测试函数最好以test_开头,如果之前的测试用例遵循其他的命名规则,也可以修改默认的测试搜索规则
以上是关于运行pytest的主要内容,如果未能解决你的问题,请参考以下文章