我有以下通过py.test运行的unittest代码。 构造函数的存在使整个类在运行时跳过 py.试验-v-s
已收集0个项目/1跳过
有人能给我解释一下这种皮试的行为吗?
我对理解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
正如Matti Lyra py.test在回答中已经提到的,故意跳过具有构造函数的类。这是因为类只用于py.test中的结构原因,并且没有任何固有的行为,而在实际编写代码时,没有类的
.__init__()
方法则是相反的,而且要难得多。所以在实践中,跳过一个带有构造函数的类很可能是我们想要的,通常它只是一个碰巧有冲突名称的类。最后,py.test需要实例化类才能执行测试。如果构造函数接受任何参数,则无法实例化它,因此再次跳过是正确的做法。
py.test的文档实现了以下标准测试发现:
Test
前缀测试类(不带__init__
方法)[<;--注意这里的这个test_
带前缀的测试函数或方法是测试项所以并不是不需要构造函数,py.test只是忽略了有构造函数的类。还有一个guide用于更改标准测试发现。
相关问题 更多 >
编程相关推荐