我正在编写一个
BATS(Bash自动化测试系统)脚本,我想要的是一个变量,可以在所有测试中保持不变.例如:
#!/usr/bin/env bats # Generate random port number port_num=$(shuf -i 2000-65000 -n 1) @test "Test number one" { a = $port_num } @test "Test number two" { b = $port_num }
评估时,a和b应该相等.但这不起作用,因为(根据文档)在每次测试运行后评估整个文件.这意味着$port_num在测试之间重新生成.我是否有办法/地方存储将在所有测试中保留的变量?
将其导出为环境变量.
# If ENV Var $port_num doesn't exist,set it. if [ -z "$port_num" ]; then export port_num=$(shuf -i 2000-65000 -n 1) fi
在BATS中,您必须调用load来获取文件.
将上面的代码放在正在执行的目录中名为port.bash的文件中.
然后在您的功能之前,调用加载端口.这将设置您的$port_num一次,而不是更改它.
load port @test "Test number one" { a = $port_num } @test "Test number two" { b = $port_num }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。