我有通过py.test运行的以下unittest代码。 仅仅存在构造函数会使整个类在运行时跳过 py.test -v -s
收集0项/ 1跳过
任何人都可以向我解释py.test的这种行为吗?
我对理解py.test行为感兴趣,我知道不需要构造函数。
谢谢, 兹德涅克
class TestClassName(object):
def __init__(self):
pass
def setup_method(self, method):
print "setup_method called"
def teardown_method(self, method):
print "teardown_method called"
def test_a(self):
print "test_a called"
assert 1 == 1
def test_b(self):
print "test_b called"
assert 1 == 1
答案 0 :(得分:35)
正如在Matti Lyra的回答中已经提到的那样py.test故意跳过具有构造函数的类。这样做的原因是类只是出于结构原因而在py.test中使用,并且没有任何固有的行为,而实际编写代码时,对于没有类.__init__()
方法而言则相反且更为罕见。所以在实践中,使用构造函数跳过一个类可能就是所期望的,通常它只是一个恰好有一个冲突名称的类。
最后,py.test需要实例化该类才能执行测试。如果构造函数接受任何参数,它就无法实例化它,所以再次跳过是正确的事情。
答案 1 :(得分:32)