2012-11-24 101 views
5

說到測試我已經支持它了。我現在是一個巨大的粉絲,並且經常做類似TDD的事情。在VS 2010中,我使用MSTEST進行設計和迴歸。這很棒 - 我的所有項目都是開源的,並且與我的工作無關(物理研究@大學)。然後我進入Pex,這幫助我找到了許多我沒有找過的邊緣案例。總的來說,這是我編碼方式的革命。這已經將我介紹給了莫爾斯。也很酷(但我仍然在學習)。在VS 2012中離開Pex和Moles?

不幸的是,我只能訪問專業版的VS(這是我的大學獲得的網站許可證)。結果是痣不再起作用,升級,假貨也不會。我會想象Pex的下一個版本將依靠Fakes,使其成爲Ultimate-only選項。

因此,我發現自己現在正在尋找具有類似功能的開源工具。是否有某篇文章或某個資源比較某些更成熟的OSS項目?我發現自己有點不知所措(即選擇太多)。雖然我喜歡這種嘲諷能力,但它是一種工具,而不是我想用空閒時間玩的東西(這是我的大多數.NET編程發生的地方)。

我認爲Pex將不可能在沒有花錢的情況下進行更換。

雖然我在這裏,但似乎我應該看看是否有其他測試框架比MSTEST更好。 MSTEST相當不錯,但開始感覺有點有限(如果有的話,我還沒有探索VS2012中的任何新功能)。

非常感謝您的幫助,事實上,通常我會嘗試提出一個更具體的問題,但我在這裏有點海。

+0

nunit和xunit是MSTests的重要替代品。 xunit現在甚至支持異步測試 – roundcrisis

回答

4

我不知道在.NET中測試PEX的替代品。

有很多替代品的假貨框架,如MoqRhino Mocks。有關更完整的列表,請參見here。我個人使用Moq是因爲我喜歡流暢的API,它支持classical and mockist兩種測試類型。

Fakes框架還包括爲單元測試不友好的類型(例如密封類型或靜態方法)生成墊片的功能。 TypeMock Isolator可能是唯一的選擇,但它不是免費的。如果你不能寫出你自己的測試友好包裝器,或者使用某種形式的duck typing

Visual Studio 2012具有用於測試運行器的插件架構,Peter Provst維護插件列表here。我認爲VS 2012現在使用vstestconsole而不是MSTest,它在2012年的運行速度肯定比2010年更快。NUnit比MSTest更能支持參數化測試。

+0

是的。我會想念做墊片的能力,我只是在學習如何去做。 – Gordon

+0

Fakes是Moles的發佈版本。 Pex仍然可能有未來。痣應該先來市場並消除所有的皺紋是有道理的。 Pex可能會在下一個主要版本中出現。我沒有聽說過這件事。這只是猜測。 –

5
  1. 您可以繼續使用PEX在VS 2010中打開您的 溶液(S),生成測試,即使你是正常的內部VS 2012 VS項目方案的工作是2010和VS 2012 VS之間非常兼容 您也可以考慮從2010加載項運行命令行PEX。見 https://stackoverflow.com/a/6809669

  2. PEX應與其他嘲諷框架,不限於痣或假貨,電子協同工作。g見現在Integrate Pex with MoQ

  3. 正版正貨可供VS Premium-看到http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2919309-provide-microsoft-fakes-with-all-visual-studio-edi

  4. 從一個巨大的各種嘲諷的框架我們的團隊選擇NSubstitute,我們與它很高興。

  5. 我也不知道在.NET中用於生成測試的替代方法。然而看看AutoFixture, Both projects focus on auto-generating test input 「通過使用AutoFixture for TDD,然後使用Pex for QA,結合使用AutoFixture和Pex是有意義的。」