如何在python unittest中指定测试特定的设置和拆卸

时间:2016-07-15 11:15:46

标签: python python-unittest nose2

我想用同一个类中的两个不同的设置和tearDown方法创建unittest测试,并进行两次不同的测试。

每个测试都将在python unittest框架中使用其特定的setUp和tearDown方法。

任何人都可以帮助我。

    class processtestCase(unittest.TestCase):

         print "start the process test cases " 

        def setUp1(self): 
             unittest.TestCase.setUp(self)

        def test_test1(self): 
              "test Functinality" 

        def tearDown1(self): 
             unittest.TestCase.tearDown(self) 

        def setUp2(self): 
            unittest.TestCase.setUp2(self) 

        def test_test2(self): 
            "test Functinality" 

        def tearDown2(self): 
            unittest.TestCase.tearDown2(self) '

if __name__ == '__main__':
        unittest.main()

1 个答案:

答案 0 :(得分:0)

在这个问题中,你提到你有两个测试,每个测试都有自己的设置和拆卸。至少有两种方法:

您可以将tearDownclass FooTest(unittest.TestCase): def test_0(self): ... # 1st setUp() code try: ... # 1st test code except: ... # 1st tearDown() code raise def test_1(self): ... # 2nd setUp() code try: ... # 2nd test code except: ... # 2nd tearDown() code raise 代码嵌入到每个测试中:

class FooTest0(unittest.TestCase):
    @classmethod
    def setUp(cls):
        ...

    @classmethod
    def tearDown(cls):
        ...

    def test(self):
       ...

或者,您可以将类拆分为两个类:

column1

第一个选项有更少的课程,更短,更直接。第二个选项更干净地分离设置夹具,清理它,然后测试代码本身。这也是未来的证据,增加了更多的测试。

您应该根据您的具体情况和个人偏好判断权衡。