06、pytest将多个测试放在一个类中
官方用例
# content of test_class.py
# 实例1
class TestClass:
def test_one(self):
x = "this"
assert "h" in x
def test_two(self):
x = "hello"
assert hasattr(x,"check")
# content of test_class_demo.py
# 每个测试都有唯一的类实例
class TestClassDemoInstance:
value = 0
def test_one(self):
self.value = 1
assert self.value == 1
def test_two(self):
assert self.value == 1
解读与实操
一旦开发了多个测试,你可能希望将它们分组到一个类中。pytest可以很容易地创建一个包含多个测试的类。
确保为类添加Test前缀,否则将跳过该类。
将测试分组到类是有益的,原因如下:
- 更好的组织测试
- 仅在该特定类中共享fixture
- 在类级别应用mark,并将其隐式应用于所有测试
在类中对测试进行分组时需要注意的是,每个测试都有一个唯一的类实例。让每个测试共享相同的类实例将非常不利于测试隔离,并会造成糟糕的测试实践。
场景应用
程序开发过程由面向函数发展到面向对象,测试用例也可以通过面向对象进行设计,更好的感受pytest带来的便利。