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