在我们的团队中,我们像这样定义大多数测试用例:
一个“框架”类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的人,我感到迷失了,除了方法之外,我一直在猛烈抨击其他所有东西。
发布于 2013-04-12 20:44:32
这就像你建议的那样工作--你只需要指定类名:
python testMyCase.py MyCase.testItIsHot
发布于 2014-10-23 23:34:15
如果您组织您的测试用例,即遵循与实际代码相同的组织,并对同一包中的模块使用相对导入,则您还可以使用以下命令格式:
python -m unittest mypkg.tests.test_module.TestClass.test_method
# In your case, this would be:
python -m unittest testMyCase.MyCase.testItIsHot
Python3文档:
发布于 2013-04-12 20:53:33
它可以像你想象的那样工作良好。
python testMyCase.py MyCase.testItIsHot
还有另一种只测试testItIsHot
的方法
suite = unittest.TestSuite()
suite.addTest(MyCase("testItIsHot"))
runner = unittest.TextTestRunner()
runner.run(suite)
https://stackoverflow.com/questions/15971735
复制相似问题