运行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的主要内容,如果未能解决你的问题,请参考以下文章

pytest文档3-pycharm运行pytest

3.pytest文档-pycharm运行pytest

pytest_03_pycharm运行pytest (转:上海悠悠)

Pytest02-pytest命名规则

pytest为什么不能运行指定目录下的用例

pytest文档3-pycharm运行pytest