在setUpClass中使用变量(类方法) - unittest python

时间:2016-10-11 23:10:45

标签: python python-2.7 unit-testing testing python-unittest

我想使用我在子类中初始化的变量来在父类的setUpClass中使用,这里是下面的代码片段:

class BaseTest(unittest.TestCase):

    def __init__(cls, arg):
        unittest.TestCase.__init__(cls, arg)

    @classmethod
    def setUpClass(cls):
        print "Base.setUp()" ,cls.param

    @classmethod
    def tearDownClass(cls):
        print "Base.tearDown()"


class TestSomething(BaseTest):
    def __init__(cls, arg):
        BaseTest.__init__(cls, arg)
        cls.param = 'hello'

    def test_silly(self):
        print "Test method"
        self.assertTrue(1+1 == 2)

    def test_silly1(self):
        print "Test method"
        self.assertTrue(1+1 == 2) 

它给了我这个:AttributeError: type object 'TestSomething' has no attribute 'param',我理解这是真的,因为setUpClass and tearDownClass是类而不是实例方法,任何方式使用在基类中实例化的变量来在{{1}中使用}?

1 个答案:

答案 0 :(得分:0)

您需要在之前设置cls.param ,然后拨打BaseTest.__init__(cls, arg)