Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自动生成.NET单元测试_C#_.net_Unit Testing_Automation_Automated Tests - Fatal编程技术网

C# 自动生成.NET单元测试

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的自动生成解决方案有哪些

…有没有使用这种技术的例子

…这只适用于某些类型的应用程序,还是可以用来取代所有手动编写的单元测试?

请看一看。这是微软的一个研究项目。网址:

Pex通过基于动态符号执行的自动探索性测试,从手工编写的参数化单元测试生成单元测试

2019年更新: 如评论中所述,Pex现在被称为,并且是VisualStudio企业版的一个功能。它支持以MSTest、MSTest V2、NUnit和xUnit格式发出测试,并且它是可扩展的,因此您可以将它与其他单元测试框架一起使用

但请注意以下注意事项:

  • 仅支持针对.NET Framework的C#代码
  • 不支持x64配置
  • 仅在Visual Studio企业版中提供

我认为,就TDD而言,单元测试生成没有意义

您只需进行单元测试,就可以确保(作为开发人员)在设计和规格方面走上正轨。一旦您开始自动生成测试,它就失去了这个目的。当然,这可能意味着100%的代码覆盖率,但覆盖率将是毫无意义和空洞的

自动化单元测试还意味着您的策略是在测试之后,这与TDD的测试之前的原则相反。同样,TDD与测试无关


话虽如此,我相信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吗?这已经是一个