断言
Posted tester-chenmo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了断言相关的知识,希望对你有一定的参考价值。
1、使用assert 编写断言
2、触发期望异常的断言
3、特殊数据结构比较优化
针对一些特殊的数据结构间的比较,pytest
对结果的显示做了一些优化:
- 集合、列表等:标记出第一个不同的元素;
- 字符串:标记出不同的部分;
- 字典:标记出不同的条目;
4、为失败断言添加自定义的说明
(1)重写__repr__方法优化显示
(2)使用 pytest_assertrepr_compare钩子方法
5、断言自省细节
当断言失败时,pytest
为提供了非常人性化的失败说明,中间往往夹杂着相应变量的自省信息,这个称为断言的自省;pytest
是如何做到这样的:pytest
发现测试模块,并引入它们 ,与此同时,pytest
会复写断言语句,添加自省信息;但是,不是测试模块的断言语句并不会被复写;
(1)复写缓存文件
pytest
会把被复写的模块存储到本地作为缓存使用,可以通过在测试用例的根文件夹中的conftest.py
里添加如下配置来禁止这种行为:
这不会方法使用断言自省,只是不会再本地存储.pyc文件。
(2)去使能断言自省
- 在需要去使能模块的
docstring
中添加PYTEST_DONT_REWRITE
字符串; - 执行pytest时,添加
--assert=plain
选项;
以上是关于断言的主要内容,如果未能解决你的问题,请参考以下文章