美文网首页Pytest教程测试基础课
Pytest官方教程-16-运行Nose用例

Pytest官方教程-16-运行Nose用例

作者: 韩志超 | 来源:发表于2019-04-25 09:56 被阅读14次

目录:

  1. 安装及入门
  2. 使用和调用方法
  3. 原有TestSuite使用方法
  4. 断言的编写和报告
  5. Pytest fixtures:清晰 模块化 易扩展
  6. 使用Marks标记测试用例
  7. Monkeypatching/对模块和环境进行Mock
  8. 使用tmp目录和文件
  9. 捕获stdout及stderr输出
  10. 捕获警告信息
  11. 模块及测试文件中集成doctest测试
  12. skip及xfail: 处理不能成功的测试用例
  13. Fixture方法及测试用例的参数化
  14. 缓存: 使用跨执行状态
  15. unittest.TestCase支持
  16. 运行Nose用例
  17. 经典xUnit风格的setup/teardown
  18. 安装和使用插件
  19. 插件编写
  20. 编写钩子(hook)方法
  21. 运行日志
  22. API参考
    1. 方法(Functions)
    2. 标记(Marks)
    3. 钩子(Hooks)
    4. 装置(Fixtures)
    5. 对象(Objects)
    6. 特殊变量(Special Variables)
    7. 环境变量(Environment Variables)
    8. 配置选项(Configuration Options)
  23. 优质集成实践
  24. 片状测试
  25. Pytest导入机制及sys.path/PYTHONPATH
  26. 配置选项
  27. 示例及自定义技巧
  28. Bash自动补全设置

运行Nose用例

pytest有基本支持运行为nose编写的测试。

用法

安装pytest类型:

python setup.py develop  # make sure tests can import our package
pytest  # instead of 'nosetests'

你应该能够运行你的nose样式测试并利用pytest的功能。

支持的nose风格

  • 在模块/类/方法级别进行设置和拆卸
  • SkipTest异常和标记
  • 设置/拆卸装饰器
  • yield基于测试及其设置(从pytest 3.0开始被认为已弃用)
  • __test__ 模块/类/函数的属性
  • nose工具的一般用法

不支持的习语/已知问题

  • unittest-style 仅在类上被识别,而在普通类上不被识别。 在普通类上也支持这些方法,但pytest故意不支持。由于nose和pytest都已经支持 它,因此像nose一样复制unittest-API似乎没什么用。但是,如果你认为pytest应该支持普通类的单元测试拼写,请发帖到这个问题setUp, tearDown, setUpClass, tearDownClass``unittest.TestCase``nose``setup_class,teardown_class, setup_method, teardown_method

  • 通过扩展sys.path / import语义,nose导入具有相同导入路径(例如tests.test_mod)但不同文件系统路径(例如tests/test_mode.pyother/tests/test_mode.py)的测试模块 。pytest不这样做,但在#268中有讨论增加一些支持。请注意, nose2选择避免此sys.path / import hackery

    如果将conftest.py文件放在项目的根目录中(由pytest确定),pytest将对该目录下面的代码运行测试“nose style”,方法是将其添加到您sys.path的安装代码而不是运行。

    如果您运行 设置项目而不是或任何包管理器等效项,您可能会发现自己想要这样做。建议在此模式下使用像tox这样的虚拟环境进行开发。python setup.py install``python setup.pydevelop

  • 没有正确收集和执行nose式doctests,doctest fixtures也不起作用。

  • 没有nose配置被识别。

  • yield基于方法的方法不能setup正确支持,因为该setup方法总是在同一个类实例中调用。目前没有计划修复此问题,因为yield-test在pytest 3.0中已弃用,pytest.mark.parametrize建议使用。

相关文章

网友评论

    本文标题:Pytest官方教程-16-运行Nose用例

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