这似乎是一个非常基本的问题,但我被淘汰了。如何测试那些为了挂钩而编写的脚本。
我们知道脚本在后台运行,只有错误在SVN控制台上丢失。我尝试使用断点,但我没有任何东西可以为脚本提供输入。
有没有人对它有所了解。我正在Windows上编写svn hook脚本,因此很多已编写的钩子脚本要么没有运行,要么没有给出所需的输出,例如从apache检查mime-type和eol脚本。
答案 0 :(得分:6)
我可以给你一些建议:
STDERR
。这是您的脚本向您报告错误的唯一方式。您可以将其用于实际测试。-t
或-r
命令行参数。当作为预提交挂钩执行时,我可以使用-t
参数来传递事务编号。从命令行运行它时,我可以使用-r
参数并为其提供要运行的修订号。debug
函数,允许我在设置-debug
命令行参数时打印出信息。我可以打开和关闭它。pre-commit
shell脚本失败,并以退出代码2
结束它。你永远不会提交你的交易,但你会在你的预提交脚本中收到正在发生的事情(也就是说,如果你把所有东西打印到STDERR)。您可以查看我正在开发的钩子脚本以获得一些想法。我使用Data::Dumper
Perl模块,它可以帮助我在脚本中打印出数据结构。