美文网首页
python-unittest

python-unittest

作者: C1R2 | 来源:发表于2020-09-14 22:40 被阅读0次

    Python unittest.TestLoader()类的几种寻找testcase的方法的使用

    unittest.TestLoader()提供了创建test suite的几种方法:
    TestLoader().loadTestsFromTestCase(testCaseClass)
    TestLoader().loadTestsFromModule(module, pattern=None)
    TestLoader().loadTestsFromName(name, module=None)
    TestLoader().loadTestsFromNames(name, module=None)
    TestLoader().discover
    下面一一列举其用法,并会感叹unittest的精妙之处。

    • loadTestsFromTestCase(testCaseClass)
      testCaseClass必须是TestCase的子类(或孙类也行)
    • loadTestsFromModule(module, pattern=None)
      test case所在的module
    • loadTestsFromName(name, module=None)
      name是一个string,string需要是是这种格式的“module.class.method” ---注意,这是一个字符串
    • loadTestsFromNames(name, module=None)
      names是一个list,用法与上同
    • discover(start_dir, pattern=’test*.py’, top_level_dir=None)
      从python文件中获取test cases

    调试时发现,其实三种方法得到的test suite的格式都不一样,但是runner.run()执行的结果是一样的,这也是我觉得惊喜的原因。

    unittest.TextTestRunner(verbosity=2).run(tests)
    这里的verbosity是一个选项,表示测试结果的信息复杂度,有三个值
    0 (静默模式): 你只能获得总的[测试用例]数和总的结果 比如 总共100个 失败20 成功80

    1 (默认模式): 非常类似静默模式 只是在每个成功的用例前面有个“.” 每个失败的用例前面有个 “F”

    2 (详细模式):测试结果会显示每个[测试用例]的所有相关的信息
    并且 你在命令行里加入不同的参数可以起到一样的效果

    加入 --quiet 参数 等效于 verbosity=0
    加入--verbose参数等效于 verbosity=2
    什么都不加就是 verbosity=1</pre>

    testsuite = unittest.TestSuite()
    testsuite.addTest(unittest.TestLoader().loadTestsFromTestCase(example_1.simple_test))

    参考 https://www.jianshu.com/p/99ab2e4ca112
    https://www.cnblogs.com/airb/category/1773482.html

    相关文章

      网友评论

          本文标题:python-unittest

          本文链接:https://www.haomeiwen.com/subject/wlreghtx.html