Fish Shell:
编写测试
如何操作:
Fish 没有像一些其他编程环境那样内置的测试框架。然而,你可以编写使用断言来检查函数行为的简单测试脚本。此外,你可以利用第三方工具如 fishtape
来获得更全面的测试套件。
示例 1:基本测试脚本
我们从一个在 Fish 中计算两个数之和的基本函数开始:
function add --description 'Add two numbers'
set -l sum (math $argv[1] + $argv[2])
echo $sum
end
你可以为这个函数编写一个基本测试脚本,如下所示:
function test_add
set -l result (add 3 4)
if test $result -eq 7
echo "test_add passed"
else
echo "test_add failed"
end
end
test_add
运行这个脚本将输出:
test_add passed
示例 2:使用 Fishtape
为了得到一个更健壮的测试解决方案,你可以使用 fishtape
,这是一个为 Fish 生成 TAP 的测试运行器。
首先,如果你还没有安装 fishtape
,则安装它:
fisher install jorgebucaran/fishtape
接下来,为你的 add
函数创建一个测试文件,例如 add_test.fish
:
test "Adding 3 and 4 yields 7"
set result (add 3 4)
echo "$result" | fishtape
end
使用以下命令运行测试:
fishtape add_test.fish
样本输出可能如下所示:
TAP version 13
# Adding 3 and 4 yields 7
ok 1 - test_add passed
这告诉你测试成功通过了。fishtape
允许你构建更详细的测试并提供有用的输出,便于调试并为你的 Fish 脚本提供全面的测试覆盖。