我正在测试解析XML并创建数据库对象的类(对于Django应用程序)。 对于我们读取的每种不同的XML类型,都有一个单独的解析器/创建器类(它们都创建基本相同的对象)。每个解析器类都具有相同的超类,因此它们都具有相同的接口。
如何定义一组测试,并提供解析器类列表,并使用每个解析器类运行一组测试?解析器类将定义文件名前缀,以便它读取正确的输入文件和所需的结果文件。
我想要运行所有测试(当一个测试中断时它不应该停止),当一个测试中断时它应该报告解析器类名。
答案 0 :(得分:3)
使用nose,您可以定义test generators。您可以定义测试用例,然后编写一个测试生成器,它将为每个解析器类生成一个测试函数。
答案 1 :(得分:2)
如果您使用的是unittest,它具有受django支持并安装在大多数系统上的优势,您可以执行以下操作:
class TestBase(unittest.TestCase)
testing_class = None
def setUp(self):
self.testObject = testing_class(foo, bar)
然后运行测试:
for cls in [class1, class2, class3]:
testclass = type('Test'+cls.__name, (TestBase, ), {'testing_class': cls})
suite = unittest.TestLoader().loadTestsFromTestCase(testclass)
unittest.TextTestRunner(verbosity=2).run(suite)
我没有测试过这段代码,但之前我做过这样的事情。