2013-01-31 237 views
1

我們最近啓動了TDD,我們正在爲每個開發的RESTful Web服務編寫JUnit測試用例。新版本發佈時,在生產環境中運行JUnit測試用例是否是一個好主意?JUnit生產測試用例

背景: 我們的網絡應用程序是企業網絡應用程序,具有複雜的業務邏輯。計劃是使用@After和@AfterClass來清理運行測試用例生成的測試數據。

網絡應用程序既可以是SaaS版本,也可以是內部版本,我們計劃驗證這兩個版本的升級是否可行並且是一種良好的做法。我知道我們將在臨時環境中運行這個測試用例,但要確保在升級/部署期間我們沒有損壞任何東西,或者環境尚未創建任何不同的影響。

現在的問題是,「如果沒有建議什麼,是不是很好的做法?」

+0

您可以在集成測試服務器或登臺服務器上執行測試,而不是生產服務器。在生產中引入功能時,系統範圍的功能只能測試一次。 –

回答

3

你的單元測試應該只是測試代碼。他們不應該使用數據庫和/或Web服務等外部資源進行修改,然後他們將成爲集成測試。

通常我會建議在構建/部署項目到生產之前運行單元測試,這些可以在構建服務器或QA /臨時服務器上運行。只有他們全部通過才能部署到生產環境,那麼你知道這個構建在這個意義上是穩定的。

如果你有集成測試,可以說服其他服務,並可能修改數據等,我wouldnt運行這些生產。我將在您的QA/Staging服務器上針對即將發佈到產品的代碼運行它們。

0

這是一個有趣的問題;我會說不,你不想運行一個完整的單元測試套件,但是你可能想要投資維護一個單獨的部署煙霧測試套件。

原因 - 您的測試套件可能會影響產品數據庫,例如,在實際測試中的錯誤無法回滾或什麼。另外,你不想在prod中測試你的整個代碼庫,只要驗證它部署好就可以了(假設你在運行整個測試套件時得到了可靠的結果)。