C# 自动生成.NET单元测试
有单元测试生成这样的事情吗?如果是的话 …效果好吗 …可用于.NET的自动生成解决方案有哪些 …有没有使用这种技术的例子 …这只适用于某些类型的应用程序,还是可以用来取代所有手动编写的单元测试?请看一看。这是微软的一个研究项目。网址: Pex通过基于动态符号执行的自动探索性测试,从手工编写的参数化单元测试生成单元测试 2019年更新: 如评论中所述,Pex现在被称为,并且是VisualStudio企业版的一个功能。它支持以MSTest、MSTest V2、NUnit和xUnit格式发出测试,并且它是可扩展的,因此您可以将它与其他单元测试框架一起使用 但请注意以下注意事项:C# 自动生成.NET单元测试,c#,.net,unit-testing,automation,automated-tests,C#,.net,Unit Testing,Automation,Automated Tests,有单元测试生成这样的事情吗?如果是的话 …效果好吗 …可用于.NET的自动生成解决方案有哪些 …有没有使用这种技术的例子 …这只适用于某些类型的应用程序,还是可以用来取代所有手动编写的单元测试?请看一看。这是微软的一个研究项目。网址: Pex通过基于动态符号执行的自动探索性测试,从手工编写的参数化单元测试生成单元测试 2019年更新: 如评论中所述,Pex现在被称为,并且是VisualStudio企业版的一个功能。它支持以MSTest、MSTest V2、NUnit和xUnit格式发出测试,并且
- 仅支持针对.NET Framework的C#代码李>
- 不支持x64配置
- 仅在Visual Studio企业版中提供
话虽如此,我相信MSTest确实有一个自动单元测试生成工具——我能够在VS2005中使用它。我曾经为我的类删除测试。它运行得相当好。我同意乔恩的看法。某些类型的测试,如自动模糊测试,肯定会从自动生成中受益。虽然您可以使用单元测试框架的设施来实现这一点,但这并不能实现与良好的单元测试覆盖率相关的目标 我已经使用工具生成了测试用例。我认为它适用于更高级别、面向最终用户的测试。这是用户验收测试的一部分,比纯粹的单元测试更重要 我使用单元测试工具进行验收测试。它工作得很好
请参阅。有一个名为AgitarOne(www.agitar.com)的商业产品,它可以自动生成JUnit测试类。
我没有使用过它,所以不能评论它有多有用,但是如果我现在正在做一个Java项目,我会看看它 我不知道有什么与.net等价的版本(Agitar确实发布了一个.net版本,但似乎它从未实现)。通过网页上的用户命令生成单元测试,非常漂亮 具有生成测试的功能。它使用NUnit框架进行测试描述和断言评估
通过自动生成场景(构造输入并调用测试方法)和创建基于当前代码基行为的断言,可以准备回归测试套件。稍后,在测试的代码库发展之后,断言表示回归或可以很容易地再次记录。我知道这个线程很旧,但为了所有开发人员的利益,有一个很好的库称为单元测试生成器:
良好的开发我创建了
ErrorUnit
。它从暂停的visualstudio
或错误日志生成MSTest
或NUnit
单元测试;到目前为止,模拟类变量、方法参数和EF数据访问。看
没有一个单元测试生成器可以做所有事情。单元测试通常分为三个部分:安排、执行和断言;排列部分是单元测试的最大部分,它设置了测试的所有先决条件,模拟了测试中将要执行的所有数据,单元测试的执行部分通常是一行。它激活正在测试的代码部分,传递数据。最后,测试的Assert部分获取Act部分的结果,并验证它是否满足预期(只要确保没有错误,就可以是零行)
单元测试生成器通常只能对单元测试创建进行安排和操作;然而,单元测试生成器通常不会编写断言部分,因为只有您知道什么是正确的,什么是不正确的。因此,一些手动输入/扩展单元测试对于完整性是必要的。2017年更新:
适用于VS 2015-2017,目前正在维护中。看起来像广告宣传的那样工作。Selenium生成功能测试,而不是单元测试。功能测试可以像用户一样访问应用程序。单元测试在引擎盖下访问它。超旧的评论,但没有人回复,我觉得值得一提:我完全同意,但很多人不在TDD中。我们需要一个快速启动测试的代码已经编写了各种原因。在我的例子中,我有一个没有测试的代码库。我想在添加更多功能之前进行测试,只是想有一个良好的开端。这样做是有原因的,但是从头开始一个项目,完成它,然后进行单元测试是一个糟糕的想法,你是对的。@vbullinger这对于继承遗留应用程序的开发人员来说尤其如此。是的,它们(只是)可能会起作用,但在代码下面画一条线,然后用一组测试,然后向前移动,引入的补丁可以添加到已经生成的测试中,这会很方便。“Pex完全取代手写的单元测试吗?简单的答案是否定的。”在重构或引入潜在的破坏性更改之前,使用自动生成的单元测试进行回归测试是完全有效的。。。或者不是。哦,Pex,现在是Intellitest吗?这已经是一个