将测试输出与存储在文件中的模式匹配

pytest-matcher的Python项目详细描述


这是什么

Build StatusLatest Release

这是一个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_outexpected_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中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
尝试运行JFLAP。戴软呢帽的罐子23。Java正在抛出异常   无引用的java数组布尔复制   hibernate如何在java SE应用程序中使用JPA EntityManager   java如何使用ORMLite在SQLite中持久化JavaFX属性?   java无法将项目部署到GAE   java:谷歌地图维基百科层   java Resultset(getter/setter类)对象在第二次执行时未删除旧值   s中的java struts2:选择列表>请求的列表键“”作为集合/数组/映射/枚举/迭代器类型   java如何在Karaf 4.0.5中获得BaseDao中的entityManager?   java VSCode未从控制台读取西里尔文   java字体。createFromAsset()返回字体的空指针异常   java错误:将Android Studio从0.6.1更新到0.8.9后,没有合适的构造函数