2016-07-15 4 views
-1

2つの異なるテストで同じクラスの2つの異なるセットアップとティアダウンメタンでunittestテストを作成したいと思います。python 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() 
+0

達成しようとしていることの例を教えてください。テストに別々のセットアップと分解が必要な場合、なぜ彼らは同じクラスに入っていますか? – jonrsharpe

+0

私たちは機能に特有のテストセットを作成する必要がありますので、テストごとに別々のクラスを作成する必要がありますが、それらのテストのいくつかは異なるセットアップを必要とするため、これらのテストに異なるsetUpとtearDownを追加する必要があります。私たちは同じクラスで複数のtestSetupを与えることができますので、Python unittestで可能ですか? –

+0

私の質問のいずれにも答えません。いくつかの例を挙げてください。 – jonrsharpe

答えて

0

、あなたは二つの試験、独自のセットアップとティアダウンとそれぞれを持っていることに言及。どこへ行くか、少なくとも2つの方法があります。あなたがテストのそれぞれにsetUptearDownコードを埋め込むことができますいずれか

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

    @classmethod 
    def tearDown(cls): 
     ... 

    def test(self): 
     ... 

class 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 

また、次の2つのクラスにクラスを分割することができます

最初のオプションは、クラスが少なく、より短く、より直線です。 2番目のオプションは、フィクスチャの設定をより明確に切り離して、それをクリーンアップし、次にテストコード自体を切り離します。また、今後さらに多くのテストを追加する予定です。

特定のケースと個人の好みに基づいて、トレードオフを判断する必要があります。

関連する問題