Magnolia's Blog

持续成长

有时测试需要调用依赖于全局设置的功能,或者调用不容易测试的代码(如网络访问)。monkeypatch 可以安全地设置/删除属性、字典项或环境变量,或修改 sys.path 用于导入。

Read more »

通过使用 pytest.mark 可以轻松地在测试函数上设置元数据。一些内置标记,例如:

  • skip - 总是跳过测试函数
  • skipif - 如果满足某个条件,则跳过测试函数
  • xfail - 如果满足某个条件,则产生“预期失败”结果
  • parametrize 对同一测试函数执行多个调用

很容易创建自定义标记,或将标记应用于整个测试类或模块。这些标记可以被插件使用,也常用于 select tests 在命令行上 -m 选择权。

Read more »

Pytest 固件:显式、模块化、可扩展

purpose of test fixtures 是提供一个固定的基线,在此基础上测试可以可靠地重复执行。Pytest 固件比传统的XUnit 的setup/teardown功能提供了显著的改进:

  • 固件有明确的名称,通过声明它们在测试函数、模块、类或整个项目中的使用来激活。
  • 固件以模块化的方式实现,因为每个固件名称触发一个 固件功能 , 可以使用其他固件。
  • 固件管理规模从简单的单元扩展到复杂的功能测试,允许根据配置和组件选项参数化固件和测试,或者跨功能、类、模块或整个测试会话范围重复使用固件。
Read more »
0%