2010-08-27 118 views
2

請幫助我: 如何避免在SVN提交中進行非預先測試的提交?避免SVN提交中未經過預先測試的提交

+1

我不知道我理解你的問題,但我想你應該看看添加諸如[Hudson](http://hudson-ci.org/)之類的CI服務加入您的部署過程,並通過像[Cobertura](http://cobertura.sourceforge.net/) – puug 2010-08-27 13:47:24

回答

2

在提交*之前,你不能強迫任何人做任何事情,你只能在每次測試提交的代碼。

要從評論引述@Thomas歐文斯:

教育誰在它擊中回購之前測試自己的代碼的重要性破壞構建的人。

在特定的環境下,您可以使用類似teamcity這樣可以解決您的問題。但最終任何人都可以在SVN上提交任何內容。

有更好的方法來測試你的應用程序。例如像

The pre-tested commit example on teamcity

*其實你做,你可以使用SVN的鉤子(見下面的註釋),但在你的情況下,這將是一個非常糟糕的主意。

+1

這樣的工具實施高覆蓋率閾值從技術上講,這不是真的 - 如果你想要你可以設置一個SVN掛鉤來運行測試,並且如果它們失敗,則禁止提交。但那是愚蠢的,因爲它需要測試的持續時間才能完成一次提交。 – 2010-08-27 13:45:11

+0

我想到了這個解決方案,但正如你所說的,在每次提交等待測試通過時阻止SVN並不會有效。 – 2010-08-27 13:46:16

+0

這是持續集成和持續測試工具的要點 - 在每次簽入後運行構建和測試,以確保人員不會破壞構建。你通常可以找出檢查到底是什麼造成了休息時間,以及是誰製造的。教育那些在構建代碼之前測試代碼的重要性的人。 – 2010-08-27 13:46:44

0

您可以做的最合理的事情是建立一個持續集成環境,在每次提交後執行完整構建,並督促您的團隊在提交之前運行測試。

0

請嘗試使用SVN掛鉤腳本,例如post-commit,precommit,它們在每個操作系統中都不相同。但他們是有用的!

當然,您應該編寫自己的邏輯,將鉤子腳本與一些腳本結合起來,這些腳本會告訴您代碼是否已經過測試。

有關更多信息,請查看您的存儲庫基礎文件夾下的名爲hooks的文件夾,您將看到一個全新的世界!

希望這有助於

0

對於您要提交的代碼,但你不想影響/中斷別的一兩件事你可以做的是創造一個分支,提交你的代碼的情況。在您滿意測試並準備好後,您可以將這些提交合併到卡車中。

0

最快的方法只是告訴那些合作的人,這本書是正確的嗎?或者,在這一點上,對你而言,這是一個抨擊人類因素的大部分問題?