2011-11-28 87 views
4

這似乎是非常基本的問題,但我被淘汰出局。如何測試那些爲鉤住目的而編寫的腳本。如何調試Subversion預提交鉤子腳本?

正如我們所知,腳本在後臺運行,只有錯誤通過SVN控制檯返回給我們。我嘗試了斷點,但沒有任何可以爲腳本提供輸入。

有沒有人有任何想法。我在windows上編寫svn鉤子腳本,所以很多已經寫好的鉤子腳本或者沒有運行或者沒有給出所需的輸出,例如從apache中檢查mime-type和eol腳本。

回答

5

我可以給你一些建議:

  • 您需要打印到STDERR。這是您的腳本向您報告錯誤的唯一方式。您可以將其用於實際測試。
  • 我寫了我的預先提交腳本,同時採用了-t-r命令行參數。當作爲預先提交鉤子執行時,我可以使用參數-t來傳入事務編號。當從命令行運行它時,我可以使用-r參數併爲其提供一個修訂版號來運行。
  • 我還寫了一個debug函數,它允許我在設置-debug命令行參數時輸出信息。我可以打開和關閉這個。
  • 如果您實際上正在測試您的掛鉤,請使用存儲庫的副本,並確保pre-commit外殼腳本將以退出代碼2結束而失敗。你永遠不會提交你的事務,但是你會在預先提交的腳本中得到正在發生的消息(也就是說,如果你將所有東西都打印到STDERR中)。

你可以看看我正在開發的鉤子腳本來獲得一些想法。我使用Data::Dumper Perl模塊,它可以幫助打印腳本中的數據結構。