C# 如何在MonoDevelop/.Net中自动生成单元测试?

C# 如何在MonoDevelop/.Net中自动生成单元测试?,c#,.net,unit-testing,testing,monodevelop,C#,.net,Unit Testing,Testing,Monodevelop,我希望在MonoDevelop/.Net中自动生成单元测试 我试过NUnit,但它没有生成测试。在eclipse中,插件可以做到这一点,但它的目标是Java和JUnit 如何在MonoDevelop和/或.Net中自动生成单元测试?或者可能有一个我不知道的现有工具…使用不同(随机)输入调用方法只是过程的一部分。您还需要为每个输入定义正确的结果,我认为工具无法为您做到这一点 randoop似乎只检查了equal的极少数非常基本的属性,这在imo中用处不大,还可能导致错误的正确性印象(“嘿,看,所有

我希望在MonoDevelop/.Net中自动生成单元测试

我试过NUnit,但它没有生成测试。在eclipse中,插件可以做到这一点,但它的目标是Java和JUnit


如何在MonoDevelop和/或.Net中自动生成单元测试?或者可能有一个我不知道的现有工具…

使用不同(随机)输入调用方法只是过程的一部分。您还需要为每个输入定义正确的结果,我认为工具无法为您做到这一点

randoop似乎只检查了
equal
的极少数非常基本的属性,这在imo中用处不大,还可能导致错误的正确性印象(“嘿,看,所有测试都通过了,我的软件还可以”…)

另外,仅仅随机生成代码(和输入)也有测试结果不确定的风险。您可能会也可能不会得到真正发现代码缺陷的测试

也就是说,快速谷歌搜索为您可能想要采取的方法提供了以下出发点:

  • 您可能对使用测试用例生成器感兴趣(本文描述了一个非常简单的生成器)。它们支持您生成“样板”代码,并且可以确保您不会错过任何要测试的类/方法。当然,生成的测试需要通过定义适当的(即有意义的)输入和(正确的)输出值进行调整。谷歌搜索“NUnit测试生成器”将为您提供其他链接,商业软件也是如此,我不想在这里重复
  • NUnit(和其他测试框架)支持参数化测试:这些测试可用于测试整个输入场景类。对于NUnit,我找到了一个属性,它允许您为方法生成随机输入(在一定范围内)。记住我在上面写的关于随机测试输入的内容:这些测试的结果将不可复制,这使得它们对于自动测试或回归测试毫无用处

也就是说,再看看(当然还有其他人),这可能支持我反对自动生成单元测试的观点。

对我来说,您不清楚如何“自动”生成单元测试?randoop似乎只生成或多或少的随机代码(即方法调用)并检查一些非常原始的属性或
equal()
。您是否正在寻找一个为.NET做同样事情的工具(我不知道有这样的工具…)?在我看来,这不是一种很好的单元测试方法。我需要使用不同的可能值生成对类的方法的调用​​在他的执行之后,生成一个测试通过和失败的报告,这应该是Monodevelop的插件。我有一个游戏的项目,你是否在寻找一个工具,给定一个要测试的类,它将为该类的公共方法生成单元测试的框架?Randoop是Java的独立工具,而不仅仅是Eclipse插件。此外,Randoop for.NET的一个版本可在以下站点获得:。但是,它最近没有更新。ABB公司发布了一个更新版本的Randoop.NET工具,用于自动生成单元测试,位于。它修复了bug,添加了新功能,并添加了GUI。感谢您的帮助,我使用了CodeProyect文章并手动编写了测试用例。根据其文档,Randoop检查的不仅仅是equals的属性。此外,它还可以使用丰富的断言创建回归测试,以确保行为不会在运行之间发生变化,这是测试的真正目的。通过运行大量您不想变成测试用例的执行来发现Bug也很有用,Randoop也可以这样做,但这与自动创建测试套件无关。