2016-11-08 5 views
0

py.testのsetup_classメソッドが失敗したときに、いくつかのコードを実行するためのきれいな方法を見つけようとしています。次の例を考えてみます。pytestセットアップの失敗に対してどのように対処するか

class TestClass: 

    @classmethod 
    def setup_class(self): 
     print("I am performing setup actions!") 

    def test_one(self): 
     x = "this" 
     assert 'h' in x 

    def setup_cleanup(self): 
     print("I want to perfrom some cleanup action!") 

セットアップで例外が発生した場合、setup_cleanupメソッドがpy.testによってトリガーされるようにするにはどうすればよいですか?

答えて

0

あなたはsetup_classメソッドでデコレータキャッチ例外のこの種を使用することができます。

def is_failed_decorator(func): 
    def wrapper(*args, **kwargs): 
     try: 
      func(*args, **kwargs) 
     except AssertionError: 
      # Your code here. 
      raise 
    return wrapper 

@is_failed_decorator 
@classmethod 
def setup_class(self): 
関連する問題