我有一组测试用例,都应该完成相同的测试,沿着“方法x返回现有文件的名称?”的行。如何将测试方法添加到一组Django TestCase派生类?
我认为最好的方法是从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()入侵,但我想了解为什么它不起作用。
@jivanamara:有一种方法可以避免超类测试方法被计数_and_在没有'if getattr(...)'检查的情况下编写测试方法。看到我的答案的第二个更新。 – 2010-09-01 15:45:57