一尘不染

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

python

在我们的团队中,我们定义了大多数测试用例,如下所示:

一门“框架”课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的新手,所以我迷失了方向,不停地尝试除方法之外的所有事情。


阅读 150

收藏
2020-12-20

共1个答案

一尘不染

这可以按照您的建议进行工作-您只需指定类名即可:

python testMyCase.py MyCase.testItIsHot
2020-12-20