一旦你需要开发多条测试用例,你可能会想要使用类来组织它们。使用Pytest可以很轻松的创建包含多条用例的测试类:
# content of test_class.py
class TestClass:
def test_one(self):
x = "this"
assert "h" in x
def test_two(self):
x = "hello"
assert hasattr(x, "check")
代码注释: 如果运行这个测试类,将同时运行下面两个测试用例,
第一个测试用例是在判断 "h" 是不是 x 当中
第二个测试用例是在判断 x 名字是不是"check"
这里的 hasattr 只是一个函数 和我们学习的pytest 并没有太大关系
即使你将上面的代码写成这样最简单的断言也是可以的
# content of test_class.py
class TestClass:
def test_one(self):
x = "this"
assert "h" in x
def test_two(self):
x = "hello"
assert x == "check"
运行上面代码你可以在pycharm中看到第一个是通过的,第二个是失败的
pytest 运行测试用例机制
Pytest
可以发现所有遵循Python测试用例发现约定规则的用例,所以它能找到Test
开头的测试类外以及类中所有以test_
开头的函数及方法。测试类无需再继承任何对象。我们只需要简单地通过文件名来运行这个模块即可。
也就是说他不需要像unnittest那样,需要继承 class TestClass(unittest.TestCase) ,你只需要按照pytest 命名规则进行取名字就好了,当然这个执行规则是可以改的,这需要用到后面的知识