我正在寻找一种回归测试我们正在建造的一套设备的工具。
当前的概念是您为工具创建一个输入文件(text / csv),指定被测系统的输入。然后,该工具捕获系统的输出,并将输入和输出记录到输出文件中。
输出格式与原始输入文件的格式相同,可用作后续运行工具的输入,测量输出与上一次运行的值匹配。
两次运行的结果不完全匹配,有一些时间差异取决于电池的状态,或者取决于设备的其他内部状态。
我们必须编写自己的接口,将命令从工具传递到设备并捕获设备的输出。
这是一项相对简单的任务,但我正在寻找一个现有的工具/包/库,以避免重新发明轮子/窃取课程。
答案 0 :(得分:2)
我最近在git(http://git.or.cz/)之上构建了一个这样的系统。基本上,编写一个程序,它接收所有输入文件,将它们发送到服务器,读回输出,并将其写入一组输出文件。第一次运行后,将输出文件提交到git。
对于将来的运行,您的成功取决于运行完成后git存储库是否干净:
test 0 == $(git diff data/output/ | wc -l)
作为奖励,您可以使用所有git工具来比较差异,如果事实证明差异是一种改进,则提交它们,以便将来的运行通过。在分支之间合并时,它也很有用。
答案 1 :(得分:1)
我不确定是否会有一个完全符合您需求的包装。您需要考虑几个因素:
diff
工具,并且必须编写智能脚本。答案 2 :(得分:0)
您可以使用任何测试框架。困难的部分是编写工具来从测试系统发送/检索数据,而不是实际的字符串比较。
你的测试看起来都像这样:
x = read_input_file(ifilename);
y1 = read_expected_data(ofilename);
send_input_file_to_server();
y2 = read_output_from_server();
checkequal(y1, y2)