从main()在python中运行特定的单元测试

时间:2016-04-18 19:37:04

标签: python python-unittest

我试图从类中提供的单元测试中仅运行一个测试。所以假设

class MytestSuite(unittest.TestCase):
    def test_false(self):
        a = False
        self.assertFalse(a, "Its false")

    def test_true(self):
        a = True
        self.assertTrue(a, "Its true")

我想只运行test_false。根据本网站和在线提供的Q& A,我在我的主要课程中使用了以下代码行

if __name__ == "__main__":  #Indentation was wronng
    singletest = unittest.TestSuite()
    singletest.addTest(MytestSuite().test_false)
    unittest.TextTestRunner().run(singletest)

我在尝试添加测试时遇到错误。主要是:

  File "C:\Python27\Lib\unittest\case.py", line 189, in __init__
(self.__class__, methodName))
ValueError: no such test method in <class '__main__.MytestSuite'>: runTest

我班上是否需要特定的runTest方法?有没有办法运行可能属于不同套件的特定测试。例如:方法A 属于套件类1 方法B 属于套件类2 。令人惊讶的是,这已经证明在网上很难找到。通过命令行执行此操作有多个示例,但不是来自程序本身。一如往常,任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:4)

您只是将错误的内容传递给addTest。您需要传递TestCase的新实例(在您的情况下,是MyTestSuite的实例),而不是传入绑定方法,而是使用单个 name 构造测试你想要它运行。

singletest.addTest(MyTestSuite('test_false'))

The Docs有很多额外的信息和示例。