2012-11-24 47 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是有意义的。”