我每天晚上在自动化测试开始前从我的php脚本(在SuSE上)运行sudo svn --username radek update ".$codebase." --force";
。因此,测试是在今天检查的最新代码上完成的。
我怎么能确定知道svn up
成功完成了?那么如果没有触发测试呢?
答案 0 :(得分:5)
svn update
应返回非零值
然而,另一个考虑因素是合并冲突。 svn update
认为“成功”更新了包含合并冲突的工作副本。
因此,根据您的应用程序运行svn status -q
并查找具有“C”状态的文件可能很重要 - 我假设您希望在更新完成时采取不同的操作与冲突。
答案 1 :(得分:4)
从命令行,我经常运行svn status -q
,如果一切都是最新的,它应该不打印。否则,它将错误输出,或显示尚未更新的文件。
正如其他人所提到的,svn up
如果因任何特殊原因失败,则应返回非零值。
您应该考虑使用像Jenkins这样的连续构建系统。您可以让Jenkins在每次提交时运行您的测试,或者自动让它在白天的特定时间运行。这样,你就不会重新发明轮子。此外,Jenkins可以通过电子邮件发送测试结果并为您提供显示它们的位置。
答案 2 :(得分:3)
使用svn命令的返回码(应该为零),或者检查std-output的最后一行。它应该是这样的:
At revision 123.
请记住,您应该拥有正确的LOCALE