「メソッドxは既存のファイルの名前を返しますか?」の行に沿って、すべてがまったく同じテストを実行する必要があるテストケースのグループがあります。
そのための最善の方法は、全員が共有するTestCaseから派生した基本クラスであり、そのクラスにテストを追加することだと思いました。残念ながら、テストフレームワークは依然として基本クラスのテストを実行しようとしますが、それは意味がありません。
class SharedTest(TestCase):
def x(self):
...do test...
class OneTestCase(SharedTest):
...my tests are performed, and 'SharedTest.x()'...
次のような派生クラスではなく、基本クラスのオブジェクトで呼び出された場合は、チェックをハックしてテストをスキップしようとしました。
class SharedTest(TestCase):
def x(self):
if type(self) != type(SharedTest()):
...do test...
else:
pass
しかし、このエラーが発生しました:
ValueError: no such test method in <class 'tests.SharedTest'>: runTest
まず、これを行うためのエレガントな提案があります。次に、type()ハックは実際には使用したくないのですが、なぜ機能しないのかを理解したいと思います。