2.命令行界面

unittest模块可以在命令行中从模块、类和单独的测试方法中运行测试:

python -m unittest test_module1 test_module2
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

你可以传递一个包含任意模块名和完全限定的类或方法名称的组合的列表。

测试模块也可以通过文件路径指定:

python -m unittest tests/test_something.py

这允许你使用shell文件名来指定测试模块。
指定的模块仍然必须可作为模块导入。将路径转换为模块名称,只需要删除.py并将路径分隔符转换成.即可。如果你想要执行一个不可作为模块导入的测试文件,你就应该直接执行该文件。

你可以通过传入-v标志来运行测试,以获得更多信息:

python -m unittest -v test_module

在没有参数的情况下执行,会启动Test Discovery:

python -m unittest

如果要获取所有命令行选项的列表,请执行:

python -m unittest -h

注:
3.2版本之前的版本,只允许运行单独的测试方法,不可以按模块或类执行测试。

2.1 命令行选项
unittest支持下面这些命令行选项:
-b,--buffer
在测试运行期间缓冲标准输出和标准错误流。通过测试期间的输出被丢弃。输出在测试失败或错误时正常回显,并添加到失败消息中。(没看懂)
-c,--catch
测试运行期间的Ctrl+C等待当前测试结束,然后报告到目前为止的所有结果。第二个Ctrl+C引发了正常的KeyboardInterrupt异常。有关提供此功能的函数,请参考Signal Handling。
-f,--failfast
在第一次错误或失败时停止测试运行。
-k
仅运行与模式或字符串匹配的测试方法和类。此选项可以多次使用,在多次使用时包括与给定模式匹配的所有测试用例。
包含通配符*的模式使用fnmatch.fnmatchcase()来与测试名匹配。其他情况则使用简单的大小写敏感的子串来匹配。
模式与测试加载程序导入的完全限定的测试方法名称匹配。例如:-k foo匹配foo_tests.SomeTest.test_somethingbar_tests.SomeTest.test_foo,但是不匹配bar_tests.FooTest.test_something
--locals
在traceback中显示局部变量。
命令行还可以用于测试发现,用于运行项目中的所有测试或仅运行子集。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,947评论 0 5
  • 大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块...
    SkTj阅读 12,371评论 0 12
  • 下午在家收拾屋子,发现了儿子一年级写的日记,还记得当时是我俩每人买了一个笔记本一块写日记,我写了不到5篇,儿...
    苹果杭妈阅读 1,215评论 0 0
  • 关于《当下月刊》成立文学创作中心的 通知 经《当下月刊》主席团与《当下月刊》理事会联合讨论决定成立《当下月刊》文学...
    当下月刊阅读 3,321评论 0 0