#快照 #测试 #输出 #执行命令 #终端 #CLI

应用 parrot-snap

一个多彩且友好的 CLI 快照测试工具

3 个版本

0.0.3 2020年10月11日
0.0.2 2020年9月13日
0.0.1 2020年9月2日

#2545 in 命令行工具

MIT 许可证

95KB
2K SLoC

Parrot 🦜

用于脚本和 CLI 程序的命令行快照测试工具。

Parrot demo

parrot 允许您捕获和整理程序输出(状态码、stdout 和 stderr)的快照,并稍后验证这些输出是否仍然相同。

功能

  • 轻松进行脚本和 CLI 程序的端到端测试。
  • 使用标签整理快照。
  • 交互式 REPL 以导航和交互您的快照。

免责声明

此项目仍在开发中,可能存在粗糙的边缘,界面可能会随时间变化。不要犹豫,尝试用于小型项目,但不要仅依赖 parrot 作为您生产级软件测试套件。

目录

安装

首先,您需要 安装 Rust,然后可以使用以下命令安装 parrot

cargo install parrot-snap

用法

要使用 parrot 与您的项目一起使用,您首先必须初始化它

parrot init

这将在您的计算机上创建一个 .parrot 文件夹,该文件夹将保存所有您的快照。然后,您可以添加您的第一个快照

parrot add 'echo "Hello, world!"'

parrot 将显示快照的预览并要求确认。如果您决定保存快照,则 parrot 将打开您最喜欢的编辑器,在那里您可以编辑描述文件:第一行将用作快照名称,其余部分用作描述。退出您的编辑器后,您就完成了,您已经创建了第一个快照。

现在,您可以使用以下命令检查程序输出是否已更改

parrot run

为了获得更互动的体验,例如在开发过程中,您可以使用以下命令打开 parrot 的 REPL

parrot

从那里,您可以导航快照并执行命令。

原理

鹦鹉(Parrot)的一个主要功能是能够为快照添加标签:每次添加快照时,都会要求您输入名称和描述,如果在描述中添加了哈希标签(例如 #this),则可以在以后通过浏览和运行快照来使用这些标签。当鹦鹉运行时,它会维护一个关于您快照的视图。您可以使用 filterclear 命令(见下一节)通过名称、标签或失败的快照来搜索。通过明智地使用标签,您可以轻松地只运行与您正在处理的部分对应的测试集,或者通过浏览失败的测试的标签来推断问题。

命令

您可以通过使用命令与快照进行交互,或者直接执行它们

parrot exec 'f #demo; r*"

或者在鹦鹉的交互式外壳(REPL)中

parrot

大多数命令都有一个1个字母的缩写版本,可以帮助您更快地完成任务。您还可以通过分号 ; 分隔多个命令来执行它们,这对于鹦鹉的 exec 子命令特别有用。

以下是可用命令及其描述的列表

退出(q)

quit
q

退出鹦鹉。

帮助(h)

help
h

显示命令速查表。

筛选(f)

filter <name>
f <name>
f #<tag>
f ~
f +
f -

对当前视图应用筛选。

  • <name>:选择所有包含 <name> 的名称的快照。
  • #<tag>:选择所有带有 <tag> 标签的快照。
  • ~:选择所有具有 '等待运行' 状态的快照。
  • +:选择所有具有 '通过' 状态的快照。
  • -:选择所有具有 '失败' 状态的快照。

清除(c)

clear
c

从当前视图中删除所有筛选器。

运行(r)

run
r
r *

运行所选快照,或者如果传递了 * 作为参数,则运行当前视图中的所有快照。

显示(s)

show
s
s *

显示所选快照,或者如果传递了 * 作为参数,则显示当前视图中的所有快照。

编辑(e)

edit
e

编辑所选快照的名称或描述。

更新(u)

update
u
u *

通过运行命令并保存新的输出来更新所选快照。如果传递了 * 作为参数,则更新当前视图中的所有快照。

删除(d)

delete
d
d *

删除所选快照,或者如果传递了 * 作为参数,则删除当前视图中的所有快照。

自定义

编辑器

为了决定使用哪个编辑器,鹦鹉会查看 EDITOR 环境变量,您可以通过设置此变量来更改默认编辑器

export EDITOR=nvim

主题

Scarlet theme preview

默认主题(如上所示)是 scarlet,灵感来自同名鹦鹉,但您还可以选择其他几个主题

主题 预览
scarlet
blue-and-yellow
yellow-crested
military
hyacinth
gray

要设置主题,请更新 PARROT_THEME 变量

export PARROT_THEME=hyacinth

如果您的终端不支持真彩色,您还可以使用 ansi 主题

export PARROT_THEME=ansi

当前限制

鹦鹉在 Linux 上开发和测试,它应该在 MacOS 上也能工作(有人可以确认这一点吗?)。

依赖项

~5.5-8MB
~143K SLoC