单元测试 - noonecare/python GitHub Wiki

python 单元测试

包/frameworks

我一般会用 nosetests(nosetests 名称反映了特点,就是 nosetests 能自动找出 test。就像狗鼻子那么灵敏),简单而且更符合 python 的编程习惯。

mock and testfixtures

Pycharm 支持

使用 Pycharm 可以极大方便我们运行和调试测试用例。

  • 运行

    • 可以选择执行那些 test, 选择一个类,这个类所有的 test 都会被执行。选择一个路径(python 中路径也是 module),这个路径下所有的 test 都会执行。选择一个 test 函数, 这个 test 函数被执行。选择一个 test 方法,这个 test 方法将被执行。
  • 调试

    • 和运行一样可以选择调试哪些 test。
    • 可以设置断点
    • 在断点处,可以运行 evaluate, 查看当前各个变量的值。
    • 在断点处,可以单步执行,可以只在自己写的代码中单步执行,可以执行 resume 到下一个断点。
    • 除了 evalute, 还可以在断点处打开 console,用 console 在当前的 变量环境下执行代码。
    • 可以设置 watcher
  • 切换 testrunner

    • settings -> tools -> Python Integrated Tools -> Default test runner 我可以在这里选择用 Nosetesets 还是 Unittest 还是其他什么。
  • 编辑 run/debug configuration

pdb debugger.

pdb debugger: python standard library 中自带的 pdb 调试工具,可以在命令行下调试 python 程序。

  • pdb 没有 pycharm 的 debugger 功能强大,pdb 最大的好处就是,只要你装了 python, 你肯定能找到 pdb 调试工具。
  • pdb 没有 watcher, 但是设置 break point (b), 单步执行(n) 等等功能都有。
  • 使用 pdb 时,执行 python -m pdb <python_file_to_debug>
  • 对于 pdb 简单了解即可