0

Python unittests の出力をカスタマイズする方法を探しています。これまでのところ、目標を達成するためにpytest フックを使用することが最善の方法だと思います。

とにかく、私は自分で何かを実装しようとしましたが、Python の AST を使用してテスト クラスをナビゲートすることにかなり成功しています。これを使用して、テスト用に「assertEqual」または同様の式を実行するすべてのテスト クラス、関数、およびノー​​ドを見つけました。

次のステップは、テストを動的にロードして実行し、出力をファイルにリダイレクトしてから、このファイルを解析して実際のテスト結果を取得することです。これにより、AST からの情報と実際の実行からの両方の情報を組み合わせることができます。しかし、私は本当にここで立ち往生しています。いくつかの方法を試しましたが、TestSuite にテストケースをロードすることができません。これを TextTestRunner に渡し、出力をファイルに書き込みます。

私は次のコードを試しました:

"~/dev/python/myproject/tests/mytestclass.py" : ロードするテスト クラスへのフル パス "~/dev/python/custom_tests/custom_tests/parser.py" : ロードするファイルへのフル パス上記のテストクラス

  1. プロジェクトへのパス (「~/dev/python/myproject/」) を自分のパスに追加します

    sys.path.insert(0, self.path)
    
  2. モジュール「tests」を見つけようとします

    f, pathname, desc = imp.find_module("tests")
    module = imp.load_module("tests", f, pathname, desc)
    
  3. mytestclass を読み込もうとしています

    f, pathname, desc = imp.find_module("test_status_code", module.__path__)
    test = imp.load_module("mytestclass", f, pathname, desc)
    

これは今のところ機能しますが、これを TestSuite に追加するにはどうすればよいですか?

4

0 に答える 0