如何一次运行多个实现的python单元测试

时间:2011-10-14 07:24:45

标签: python unit-testing testing

我无法找出使用pythons unittest框架的正确方法

我目前有3种不同的数据结构类实现,并且单元测试可以测试类中的各种内容,如下所示:

import fooHorse
import fooSnake
import fooMoose
import unittest

foo = fooHorse.foo()
#foo = fooSnake.foo()
#foo = fooMoose.foo()

class testFoo(unittest.TestCase):
    def testSomething(self):
        foo.do_something()
    ...
    def testSomethingelse(self):
        ...
    # etc

if __name__ == "__main__":
    unittest.main()

如何重构代码,以便为fooSnake.foofooMoose.foofooHorse.foo运行所有测试?

2 个答案:

答案 0 :(得分:2)

只需将所有测试纳入一个函数并从三个测试中调用它:

class testFoo(unittest.TestCase):
    def _doTest(self, foo):
         foo.do_something()
         # ...

    def testFoorHorse(self):
        foo = fooHorse.foo()
        self._doTest(foo)
    # and so on.

我不会尝试做任何更聪明的事情,以便测试逻辑保持简单,显然应该没有错误。

答案 1 :(得分:0)

我认为最好将测试代码保留在被测试的类中(因此,在fooHorse类内部等)。我无法从代码段中分辨出来,所以也许你已经在做了。然后,要将多个测试组合在一起运行,或者选择其中一些,您可以创建一个单独的测试类来创建测试套件。在那里,可以分配单独的单元测试。有关详细信息,请参阅python docs