【问题标题】:Specify specific testcases in Python unit test TestLoader在 Python unittest TestLoader 中指定具体的测试用例
【发布时间】:2014-01-14 14:06:28
【问题描述】:

我有以下文件夹结构。

Unit
    smoke.py
    Test1
         Test1.py
    Test2
         Test2.py

两个测试文件各有两个测试用例。

文件 smoke.py 包含

suite1 = unittest.TestLoader().discover('Test1', pattern = "Test*.py")
suite2 = unittest.TestLoader().discover('Test2', pattern = "Test*.py")
alltests = unittest.TestSuite((suite1, suite2))
unittest.TextTestRunner(verbosity=2).run(alltests)

上面的代码运行了预期的四个测试用例。

有没有办法从文件 test1.pytest2.py 运行一些特定的测试用例,我可以将这些测试用例显式添加到其中的套件 1 和套件 2上面的代码。

如果 Test1.py 在 Test1 类中包含一个测试用例名称 test_system,TestLoader 如何加载该特定测试用例而不是运行该模块中的所有测试用例。

【问题讨论】:

    标签: python unit-testing


    【解决方案1】:

    您可以将测试加载器配置为仅运行带有特定前缀的测试:

    loader = unittest.TestLoader()
    loader.testMethodPrefix = "test_prefix"# default value is "test"
    
    suite1 = loader.discover('Test1', pattern = "Test*.py") 
    suite2 = loader.discover('Test2', pattern = "Test*.py")
    alltests = unittest.TestSuite((suite1, suite2))
    unittest.TextTestRunner(verbosity=2).run(alltests)
    

    【讨论】:

      【解决方案2】:

      一个好的解决方案可能是摆脱smoke.py 而安装nose。 Nose 是一个测试发现框架,支持包含/排除规则。

      【讨论】:

        猜你喜欢
        • 2018-03-24
        • 1970-01-01
        • 2016-04-17
        • 2011-06-01
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-02
        相关资源
        最近更新 更多