【发布时间】:2015-06-16 19:06:59
【问题描述】:
对不起,如果这是重复的,我不知道要搜索什么...
我的用例比较复杂,但可以归结为以下问题:
我想运行一个 bash 脚本,它调用各种二进制文件,例如:grep。 我想断言二进制文件是用正确的参数调用的。 这些断言应该是自动化测试的一部分,我不想手动开始检查。 这应该进入 ci 循环。
有一些标准的方法吗?
如果没有,我想移动我想要断言的所有二进制文件,用间谍替换它们,该间谍首先记录参数,然后调用原始二进制文件,最后删除自身并返回原始二进制文件。
这可行吗?有没有更好的方法来解决这个问题?
【问题讨论】:
-
set -x不够吗? -
如果您不想更改脚本,请像这样运行它们
bash -x ./scriptname -
我无法更改脚本的执行方式,运行它们 -x 会告诉我应该调用二进制文件(但也许它们不在路径上,或者其他什么?)我必须从控制台解析它。并不是说这是不可能的,而是不太方便,IMO。我想开始自动化测试,让系统启动,运行它运行的任何东西,然后让测试断言我期望发生的事情发生了。
-
我称之为
wrapper。这很 hack,但你可以这样做...stackoverflow.com/a/24202568/2836621 -
@markSetchell 这正是我正在寻找的东西,我什至写了它作为解决问题的一种可能方法,我只是想知道是否有准备好的替代方案。很高兴您将此引用为可行的实现。谢谢你。如果您愿意,可以将其写为答案,我会接受。我不认为这是重复的,我认为这是具有相同解决方案的另一个用例。
标签: linux bash shell testing spy