特定のテストが失敗してもすべてのテストを実行できるようにするために、セットアップ/ティアダウンを実行する基本クラスと、継承するサブクラスが必要です。基本クラスをインポートする複数のサブクラスを作成しようとすると、2 番目のサブクラスのインポート エラーが表示されます。次のファイルがあります。
runtestcases.py
testcase1.py
testcase2.py
runtestcases.py は次のとおりです。
import unittest
import testcase1, testcase2
class ArithTestSuper (unittest.TestCase):
def setUp (self):
print("Setting up ArithTest cases")
def tearDown (self):
print("Cleaning up ArithTest cases")
def my_suite():
suite = unittest.TestSuite()
suite.addTest (testcase1.ArithTest())
suite.addTest (testcase2.ArithTestFail())
return suite
if __name__ == '__main__':
runner = unittest.TextTestRunner()
test_suite = my_suite()
runner.run (test_suite)
ここに testcase1.py があります:
from runtestcases import ArithTestSuper
class ArithTest (ArithTestSuper):
def runTest (self):
""" Test addition and succeed. """
print("Running ArithTest")
self.failUnless (1+1==2, 'one plus one fails!')
self.failIf (1+1 != 2, 'one plus one fails again!')
self.failUnlessEqual (1+1, 2, 'more trouble with one plus one!')
ここに testcase2.py があります:
from runtestcases import ArithTestSuper
class ArithTestFail (ArithTestSuper):
def runTest (self):
""" Test addition and fail. """
print("Running ArithTestFail")
self.failUnless (1+1==2, 'one plus one fails!')
self.failIf (1+1 != 2, 'one plus one fails again!')
self.failUnlessEqual (1+1, 2, 'more trouble with one plus one!')
self.failIfEqual (1+1, 2, 'expected failure here')
self.failIfEqual (1+1, 2, 'second failure')
Compilation fails on testcase2.py with:
ImportError: cannot import name ArithTestSuper
testcase1 だけを実行すると機能します。同様に、testcase2 だけを実行すると機能します。両方試してみると、このエラーが発生します。考え?