2016-05-09 8 views
1

は、不完全なフレームワークでUpperClassを拡張できますか?は、不完全なフレームワークでUpperClassを拡張できますか?

unnitest.TestCaseを拡張するBase1を定義すると、Base1にはsetUpClassメソッドがあります。

import unittest 
class Base1(unittest.TestCase): 

@classmethod 
def setUpClass(cls): 
    print('setupClass - this is Base1') 

@classmethod 
def tearDownClass(cls): 
    print('tearDownClass - this is Base1') 

はBASE1クラス

from Base1 import Base1 
import unittest 

class Base2(Base1): 

@classmethod 
def setUpClass(cls): 
    print('setupClass - this is Base2') 

@classmethod 
def tearDownClass(cls): 
    print('tearDownClass - this is Base2') 

def test_default_size(self): 
    self.assertEqual('a','a') 

def test_resize(self): 
    self.assertEqual('a','b') 

私はBASE2内のすべてのテストケースの前に実行BASE1及びBASE2でsetUpClassでsetUpClassをしたいを拡張BASE2を定義し、これは可能だろうか?

答えて

2

あなたが明示的にsetUpClasstearDownClassを呼び出す必要があります:あなたはこれらのクラスメソッドに追加しない場合は、あなたがそれらを定義するスキップすることができ、

class Base2(Base1): 
    @classmethod 
    def setUpClass(cls): 
     print('setupClass - this is Base2') 
     super(Base2, cls).setUpClass() 

    @classmethod 
    def tearDownClass(cls): 
     print('tearDownClass - this is Base2') 
     super(Base2, cls).tearDownClass() 

しかし:

この場合
class Base3(Base1):, 
    def test1(self): 
     print('test1') 

setUpClasstearDownClassからBase1までは暗黙的に呼び出されます。

+0

おかげで海は、それが動作継承文書を参照してください。 –

関連する問題