首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过命令行从unittest.TestCase运行一个测试

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

Stack Overflow用户
提问于 2013-04-12 20:43:14
回答 7查看 193.3K关注 0票数 324

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

一个“框架”类ourtcfw.py

代码语言:javascript
复制
import unittest

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

    # Other stuff that we want to use everywhere

还有很多像testMyCase.py这样的测试用例:

代码语言:javascript
复制
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()进行更改时,我希望能够这样做:

代码语言:javascript
复制
$ python testMyCase.py testItIsHot

并让unittest只运行testItIsHot()

我怎样才能做到这一点呢?

我试图重写if __name__ == "__main__":部分,但由于我是新接触Python的人,我感到迷失了,除了方法之外,我一直在猛烈抨击其他所有东西。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-04-12 20:44:32

这就像你建议的那样工作--你只需要指定类名:

代码语言:javascript
复制
python testMyCase.py MyCase.testItIsHot
票数 394
EN

Stack Overflow用户

发布于 2014-10-23 23:34:15

如果您组织您的测试用例,即遵循与实际代码相同的组织,并对同一包中的模块使用相对导入,则您还可以使用以下命令格式:

代码语言:javascript
复制
python -m unittest mypkg.tests.test_module.TestClass.test_method

# In your case, this would be:
python -m unittest testMyCase.MyCase.testItIsHot

Python3文档:

票数 184
EN

Stack Overflow用户

发布于 2013-04-12 20:53:33

它可以像你想象的那样工作良好。

代码语言:javascript
复制
python testMyCase.py MyCase.testItIsHot

还有另一种只测试testItIsHot的方法

代码语言:javascript
复制
    suite = unittest.TestSuite()
    suite.addTest(MyCase("testItIsHot"))
    runner = unittest.TextTestRunner()
    runner.run(suite)
票数 86
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15971735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档