我需要一个运行setup/teardown的基类,然后是继承的子类,以便允许所有测试运行,而不管某些测试是否失败。当尝试有多个子类导入基类时,我看到第二个子类的导入错误。我有以下文件:
runtestcases.py
testcase1.py
testcase2.py
给你运行测试用例.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:
^{pr2}$这里是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也可以。如果我同时尝试,就会出现这个错误。思想?在
要回答您的第二个问题(https://stackoverflow.com/a/12885312/1745627):避免重写
runTest
方法;它将由unittest框架调用,基本上执行运行测试用例的工作。使用类似test_xxx
的命名约定实现您自己的测试方法(unittest查找以test
开头的方法来执行)。在这是循环进口的问题。将基类移出所运行的模块。在
相关问题 更多 >
编程相关推荐