2013-02-25 35 views
4

我剛剛開始使用Selenium,使用VS2012和C#。我不確定是否需要使用單獨的測試框架,如NUnit或HtmlUnit。我嘗試了在C#中在線提供的谷歌搜索示例,而不使用NUnit,並且它工作正常。爲什麼我需要在Selenium WebDriver上使用NUnit?

所以我現在的問題是,爲什麼我需要使用NUnit和Selenium?

+0

除了科林下面所說的,它根本不是必需的,它只是最受歡迎的。堅持你知道,如果你喜歡,例如MSTest。 – Arran 2013-02-26 12:50:42

回答

9

如果您不想使用Selenium,則不需要使用NUnit(或任何其他單元測試框架)。但是,可能有些情況下您可能想要使用NUnit(或其他)來利用其他方面的好處。例如:

  • 如果您有現有的單元測試,它將所有內容保存在一個地方。 (如果這是你想要組織的東西的方式)
  • 如果你已經使用NUnit(或你的首選單元測試框架)進行單元測試,那麼你可以重新使用相同的測試運行器(例如NUnit控制檯,NUnit GUI,ReSharper,等等)您使用NUnit,這意味着您可以使用一個按鈕/鍵盤快捷鍵運行所有測試(NUnit和Selenium)。
  • 如果您使用持續集成,它可以通過現有的NUnit(或您更喜歡的)測試運行器來運行硒測試,這意味着您不必爲硒測試單獨配置持續集成服務器。

上面假設你已經有了單元測試。如果您還沒有單元測試,或者您只對Selenium測試感興趣(例如,我們有一個開發團隊和一個測試人員,我們編寫單元測試,測試人員編寫Selenium測試,並且它們彼此獨立運行),那麼不需要添加額外的層。

單元測試框架和硒測試的不同的東西。單元測試通常一次只查看一個單一的代碼單元(儘管在實踐中,我發現它通常會溢出到相鄰單元中,特別是如果它們很小且確定的話)。 Selenium將一個網頁(或一系列網頁)視爲單一測試。 Selenium的測試需要一個系統將其許多組件集成在一起來運行測試。因此,它正在檢測更高層次,因爲它一次檢查許多事情。 (例如,系統可以處理請求,響應返回,響應包含預期數據,按下頁面上的按鈕做正確的事情,轉到正確的頁面等)

最終,只是因爲你可以做點什麼並不意味着你應該這樣做。如果你必須同時處理兩者,通過單元測試框架運行Selenium測試是一種方便。它可能適用於你,它可能不適用。

+0

對不起,由於我在網上到處閱讀NUnit,所以我相應地提出了我的問題,我想我的一般問題是,爲什麼我需要在Selenium上使用任何其他測試框架? – neuDev33 2013-02-26 14:15:56

+0

你可以在上面的答案中將NUnit替換爲你選擇的單元測試框架,可能的好處是相似的。 – 2013-02-26 14:18:57

+0

我已經更新了我的答案以表明它的一般性。我使用了NUnit,因爲這就是問題所在。如果你有一個首選的單元測試框架,然後使用它。 NUnit似乎是.NET的實際單元測試框架 – 2013-02-26 14:22:01

相關問題