2017-03-17 20 views
0

大きなテストファイルを小さなテストに分割し、テストするコードの部分に基づいてテストします。私は自分のテストのためにカスタムアサーション機能を持っています。それらを別々のファイルに分割すると、それらを他のテストファイルにどのようにインポートする必要がありますか。カスタムアサートPythonを書く方法

TestSchemacase:

class TestSchemaCase(unittest.TestCase): 
    """ 
    This will test our schema against the JSONTransformer output 
    just to make sure the schema matches the model 
    """ 
    # pylint: disable=too-many-public-methods 


    _base_dir = os.path.realpath(os.path.dirname(__file__)) 
    def assertJSONValidates(self, schema, data): 
     """ 
     This function asserts the validation works as expected 

     Args: 
      schema(dict): The schema to test against 
      data(dict): The data to validate using the schema 
     """ 
     # pylint: disable=invalid-name 
     validator = jsonschema.Draft4Validator(schema) 
     self.assertIsNone(validator.validate(data)) 


    def assertJSONValidateFails(self, schema, data): 
     """ 
     This function will assertRaises an ValidationError Exception 
     is raised. 

     Args: 
      schema(dict): The schema to validate from 
      data(dict): The data to validate using the schema 
     """ 
     # pylint: disable=invalid-name 
     validator = jsonschema.Draft4Validator(schema) 
     with self.assertRaises(jsonschema.ValidationError): 
      validator.validate(data) 

私の質問は、1です。インポートしようとすると、モジュール名が見つからないというインポートエラーが発生します。私は言及された小さなファイルにTestValidationを壊しています。 2.私はassertJSONValidateFailsでValidationエラーを発生させることができますが、検証パスの場合は何を返すべきかを知っています。

tests/schema 
├── TestSchemaCase.py 
├── TestValidation.py 
├── __init__.py 
└── models 
    ├── Fields 
    │   ├── TestImplemen.py 
    │   ├── TestRes.py 
    │   └── __init__.py 
    ├── Values 
    │   ├── TestInk.py 
    │   ├── TestAlue.py 
    │   └── __init__.py 
    └── __init__.py 

3.これはどのように継承する必要がありますか? class TestRes(unittest.TestCase、TestSchemaCase):

ありがとうございました。大きなポストに申し訳ありません

私はポストを見ましたが、それは問題を解決しません。

+2

Pythonでカスタムの '.assertFoo()\'メソッドを書く方法は?](http://stackoverflow.com/questions/6655724/how-to-write-a-custom-assertfoo-メソッドイン・パイソン) –

答えて

1

pytestのようなクラスにテストを強制しないテストフレームワークを使用することをお勧めします。

関連する問題