![dca767721367b6e93911aefa8b39e2ba.png](https://i-blog.csdnimg.cn/blog_migrate/675ffb973655dc2d140eb923b9f597df.jpeg)
用例入门
下面是一个可以通过的测试用例
def test_passing(): assert (1,2,3) == (1,2,3)
pytest test_one.py来运行,下图是输出结果
![7b19b2f0201d717e8df370840593aad2.png](https://i-blog.csdnimg.cn/blog_migrate/cf326e307e126446e4c4e7b9fa99c0ab.jpeg)
输出信息中,test_one.py后方的一个点号表示:运行了一个测试用例,且测试通过,在pytest后面几个-v,可以查看详细信息。
![c84decb7b32f82aec2dad72f5f1d2972.png](https://i-blog.csdnimg.cn/blog_migrate/84acf544feba63c2c6a9a3280c5da7e3.jpeg)
下面再看一个测试失败的例子:
def test_passing(): assert (1,2,3) == (3,2,1)
![776440ee327a4b0744ecec373a34d046.png](https://i-blog.csdnimg.cn/blog_migrate/54bd4882821b00783ec052882ff1bd82.jpeg)
pytest有一块专门的区域显示测试失败的信息,能准确的指出失败的原因:At index 0 diff: 1 != 3。
使用-v查看详细错误信息
![5509aa3e2bd640928c21db83e4dea891.png](https://i-blog.csdnimg.cn/blog_migrate/7db8579961f7cd5e28d4fd648b98f29a.jpeg)
详细的错误信息中,pytest添加了几个脱字符(^),准确的指出了前后的区别。
运行pytest
如果不提供任何参数,pytest会在当前目录以及子目录下寻找以test_开头或以_test结尾的测试函数测试文件,然后运行搜索到的测试代码。如果提供了一个或对个文件名、目录名,会逐个查找并运行所有测试,为了搜索到所有的测试代码,pytest会递归比那里每个目录及其子目录。
![e92e5769eaf1becc5c1a7d37c93971a1.png](https://i-blog.csdnimg.cn/blog_migrate/2ce0c2087a822bc133b072d2724977f1.jpeg)
![7ee71fe17e9c3e4c8d7f561733490366.png](https://i-blog.csdnimg.cn/blog_migrate/ce34590e836d0f279fdcaee9e6b6d623.jpeg)
只要遵循pytest的命名规则,pytest就能自动搜索到待执行的测试用例,
- 测试文件应当命名为test_.py或者_test.py
- 测试函数、测试类方法应当命名为test_
- 测试类应该命名为Test
pytest执行完控制台输出的内容都是什么
test_three.py文件中有两个测试用例,运行一下后控制台的输出,依次为例来介绍
![2d637fe92f0b436aa0bec5a262199ee5.png](https://i-blog.csdnimg.cn/blog_migrate/52ca5f26f1eeddf5b21406e4b26e7a89.jpeg)
- test session starts
pytest为每段测试回话(session)做了明确的分割,一段回话就是pytest的一次调用,可能包括多个目录下被执行的测试用例。
- platform darwin -- Python 3.8.0, pytest-5.3.2, py-1.8.0, pluggy-0.13.1
运行设备的信息和环境信息,包括python、pytest版本,py和pluggy都是pytest的包,用于pytest的实现。
- rootdir: /Users/zhouyajun/PycharmProjects/geek/pytest_pratice/chapter1
rootdir是当前起始目录,是pytest搜搜测试代码的开始位置
- collected 2 items
搜索范围内找到两个测试用例
- tasks/test_three.py ..
tasks/test_three.py表示测试文件,每个测试文件的测试情况占据一行,两个点号表示两个测试用例都通过。
点号仅仅表示通过,Failure-失败,error-异常,skip-跳过,xfail-预期失败,xpass-预期失败。会被分别标记为F、E、s、x、X
- 2 passed in 0.01s
表示测试通过的数量以及这段会话耗费的时间,如果存在未通过的用例,也会在这里标记出来。