fhtagn用 AWK 编写的微型 CLI 程序测试器
fhtagn 是一个微型 CLI 工具,用于对命令行程序进行读写测试。
假设你创建了一些程序command
。你要为其创建一组端到端测试。有了 fhtagn,它就像创建一个有以下内容的tests.tush
文件一样简单:
$ command --that --should --execute correctly
| expected stdout output
$ command --that --will --cause error
@ expected stderr output
? expected-exit-code
运行测试:
./fhtagn.awk tests.tush
事实上,这是 darius/tush、adolfopa/tush的重新实现。但更简单(单个微小的 AWK 脚本)和更快,因为:
- 它使用
/dev/shm
而不是/tmp
- 它将预期结果与代码中的实际结果进行比较,如果不匹配,只调用
diff
来显示差异 - 它不会为每个测试创建一个 sandbox folder
- 它不使用
mktemp
而是在代码中生成随机名称
设计原则:
- 最小化运行的外部进程
- 最小化 I/O 操作
评论