小编典典

通过命令行从 unittest.TestCase 运行单个测试

all

在我们的团队中,我们定义大多数测试用例是这样的:

一个“框架”类ourtcfw.py

import unittest

class OurTcFw(unittest.TestCase):
    def setUp:
        # Something

    # Other stuff that we want to use everywhere

还有很多测试用例,比如 testMyCase.py:

import localweather

class MyCase(OurTcFw):

    def testItIsSunny(self):
        self.assertTrue(localweather.sunny)

    def testItIsHot(self):
        self.assertTrue(localweather.temperature > 20)

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

当我正在编写新的测试代码并想经常运行它并节省时间时,我确实将“__”放在所有其他测试的前面。但这很麻烦,分散了我正在编写的代码的注意力,而且这产生的提交噪音很烦人。

因此,例如,在对 进行更改时testItIsHot(),我希望能够这样做:

$ python testMyCase.py testItIsHot

并且只 运行unittest过 __testItIsHot()

我怎样才能做到这一点?

我试图重写这if __name__ == "__main__":部分,但由于我是 Python 新手,所以我感到迷茫,并不断抨击除方法之外的所有内容。


阅读 112

收藏
2022-04-07

共1个答案

小编典典

这可以按照您的建议工作-您还必须指定类名:

python testMyCase.py MyCase.testItIsHot
2022-04-07