安装及入门
使用和调用方法
原有TestSuite使用方法
断言的编写和报告
Pytest fixtures:清晰 模块化 易扩展
使用Marks标记测试用例
Monkeypatching/对模块和环境进行Mock
使用tmp目录和文件
捕获stdout及stderr输出
捕获警告信息
模块及测试文件中集成doctest测试
skip及xfail: 处理不能成功的测试用例
Fixture方法及测试用例的参数化
缓存: 使用跨执行状态
unittest.TestCase支持
运行Nose用例
经典xUnit风格的setup/teardown
安装和使用插件
插件编写
编写钩子(hook)方法
运行日志
API参考
方法(Functions)
标记(Marks)
钩子(Hooks)
装置(Fixtures)
对象(Objects)
特殊变量(Special Variables)
环境变量(Environment Variables)
配置选项(Configuration Options)
优质集成实践
片状测试
Pytest导入机制及sys.path/PYTHONPATH
配置选项
示例及自定义技巧
Bash自动补全设置
片状”测试是表现出间歇性或偶发性失败的测试,似乎具有非确定性行为。有时它会通过,有时会失败,而且不清楚为什么。本页讨论了可以提供帮助的pytest功能以及识别,修复或减轻它们的其他一般策略。
为什么片状测试是个问题
当使用连续集成(CI)服务器时,片状测试尤其麻烦,因此在合并新代码更改之前必须通过所有测试。如果测试结果不是一个可靠的信号 - 测试失败意味着代码更改破坏了测试 - 开发人员可能会对测试结果产生不信任,这可能导致忽略真正的失败。它也是浪费时间的一个来源,因为开发人员必须重新运行测试套件并调查虚假故障。
潜在的根本原因
系统状态
从广义上讲,一个片状测试表明测试依赖于一些未被适当控制的系统状态 - 测试环境没有充分隔离。更高级别的测试更有可能是因为他们依赖更多的状态。
当测试套件并行运行时(例如使用pytest-xdist),有时会出现片状测试。这可以表明测试依赖于测试排序。
也许不同的测试是在自身之后无法清理并留下导致片状测试失败的数据。
片状测试依赖于先前测试的数据,该测试不会自行清理,并且并行运行以前的测试并不总是存在
修改全局
联系作者:xiaowanzi02620
龙腾原创