将测试输出与存储在文件中的模式匹配
pytest-matcher的Python项目详细描述
这是什么
这是一个pytest插件,它提供了两个要匹配的fixture 根据存储在文件中的模式测试输出。
该插件使用以下cli选项扩展pytest:
- --pm-save-patterns–将输出存储到模式文件(而不是检查);
- --pm-patterns-base-dir指定一个基本目录,在其中查找模式文件。
模式文件存储在一个基本目录中,其他路径基于测试模块 名称、测试类名和/或测试函数名如下:
<base-dir>/<test-module-name>/[test-class-name/]<test-function-name>
注意,对于非类测试函数,test class name部分不存在。
快速启动
插件提供expected_out和expected_err 命名的fixture函数。
deftest_foo(capfd,expected_out):print('foo')stdout,stderr=capfd.readouterr()assertstdout==expected_out
将pm-patterns-base-dir选项添加到pytest.ini文件(和pytest节) 例如指向test/data/expected。对于第一次pytest运行,它将 失败,因为不存在预期的模式文件。写它可以用 pytestcli:
$ pytest --pm-save-patterns test/test_foo.py::test_foo
查看存储的模式文件并添加到VCS中。