[英]py.test doesn't collect tests that are not inherited from 'object'
我正在尝试使用我测试所需的不同设置创建Base类。 我希望我的所有测试都从这个Base类继承。 作为跑步者,我使用py.test 。
但是当我试图这样做时,py.test不会收集从Base类继承的这些测试,因此它不会运行它们。 在文档中找不到任何有用的信息。
也许之前有人遇到过这样的问题 有任何想法吗?
谢谢。
PS当从对象继承测试时,一切正常。 Py.test看到它们并正确运行。
代码示例:
我的基类:
class BaseClass(object):
"""BaseClass"""
def __init__(self):
super(BaseClass, self).__init__()
self.bla = 'bla'
我的测试课:
import pytest
from base_class import BaseClass
class TestSmth(BaseClass):
def test_test(self):
test_instatnce = TestSmth()
print test_instatnce.bla
if __name__ == '__main__':
pytest.main([__file__, '-v'])
输出:
============================= test session starts ==============================
platform darwin -- Python 2.7.2 -- pytest-2.3.3 -- /usr/bin/python
collecting ... collected 0 items
=============================== in 0.01 seconds ===============================
[Finished in 0.4s]
我认为你不能使用__init__
。 如果您要设置(或初始化)您可以执行的类:
# base_class.py
class BaseClass(object):
"""BaseClass"""
@classmethod
@pytest.fixture(scope = "class", autouse = True)
def setup(self):
self.bla = 'bla'
#test_class.py
import pytest
from base_class import BaseClass
class TestSmth(BaseClass):
def test_test(self):
print self.bla
if __name__ == '__main__':
pytest.main([__file__, '-v'])
另外,要初始化TestSmth
类,您可以创建另一个“方法”并使用@pytest.fixture
装饰。 但是,您必须记住,这些“初始化方法”按字母顺序调用 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.