在测试方面,我已经支持了它。我现在是一个巨大的粉丝,经常做像TDD这样的事情。在VS 2010的设计和回归中,我刚刚使用了MSTEST。这很棒 - 我的所有项目都是开源的,无论如何都与我的工作有关(物理研究@大学)。然后我进入了Pex,它帮助了很多我找不到的各种边缘情况。总的来说,这是我编码方式的一次革命。这就把我介绍给了Moles。也很酷(但我还在学习)。
不幸的是,我只能访问VS的Pro版本(这是我的大学作为站点许可证获得的)。结果是Moles不再起作用,而且升级,Fakes也不会。而且我认为Pex的下一个版本将依赖于Fakes,使其成为终极选择。
所以,我发现自己现在正在寻找具有类似功能的开源工具。是否有某篇文章或资源比较了一些比较成熟的OSS项目?我发现自己有点亏本(即选择太多)。虽然我喜欢这种嘲讽能力,但它是一种工具,而不是我想利用业余时间(这是我的大部分.NET编程发生的地方)。
我认为如果不花真钱就不可能取代Pex。
虽然我很喜欢,但似乎我应该看看是否还有其他测试框架比MSTEST更好。 MSTEST相当不错,但开始感觉有点受限(我没有探索VS2012中的任何新功能,如果有的话)。
非常感谢你们的帮助,事先,通常我会尝试提出一个更具体的问题,但我在这里有点海上。
答案 0 :(得分:5)
您可以通过打开您的身份继续使用PEX来生成测试 VS 2010中的解决方案,即使您通常在VS 2012中工作.VS 2010和VS 2012之间的VS项目架构非常兼容。 您还可以考虑从2010加载项运行命令行PEX。看到 https://stackoverflow.com/a/6809669
PEX应该与其他模拟框架一起工作,不仅限于Moles或Fakes,例如Integrate Pex with MoQ
VS Premium现在可以使用假货 - 请参阅http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2919309-provide-microsoft-fakes-with-all-visual-studio-edi
我们的团队从各种各样的模拟框架中选择了NSubstitute,我们对它非常满意。
我也不知道用于在.NET中生成测试的PEX的替代品。不过看看AutoFixture, Both projects focus on auto-generating test input “通过使用AutoFixture for TDD,然后使用Pex进行QA,使用AutoFixture和Pex的组合是有意义的。”
答案 1 :(得分:4)
我不知道用于在.NET中进行测试的PEX替代方案。
Fakes框架有很多替代方案,例如Moq或Rhino 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更好地支持参数化测试。