Java单元测试的自动生成?
有没有为Java代码自动生成单元测试的工具 更新: 主要用途是为将要重构的遗留代码快速生成单元测试。自动生成后,无需自动保持测试与代码同步Java单元测试的自动生成?,java,unit-testing,Java,Unit Testing,有没有为Java代码自动生成单元测试的工具 更新: 主要用途是为将要重构的遗留代码快速生成单元测试。自动生成后,无需自动保持测试与代码同步 这里提出了几乎相同的问题,但答案是针对.NET而不是Java(这是公认的答案): 我认为Agitar有一个这样的工具叫做。我想你仍然可以得到它,但要确保公司还在那里。 有一个JUnit测试生成模块,听起来它可以做你想做的事情。看 [CoView]是一款价格合理的产品,每位用户每年仅需9.99美元,不幸的是它已经不存在了 这是值得调查的 这三种产品都有“先
这里提出了几乎相同的问题,但答案是针对.NET而不是Java(这是公认的答案):
我认为Agitar有一个这样的工具叫做。我想你仍然可以得到它,但要确保公司还在那里。
- 有一个JUnit测试生成模块,听起来它可以做你想做的事情。看
- [CoView]是一款价格合理的产品,每位用户每年仅需9.99美元,不幸的是它已经不存在了
- 这是值得调查的
这三种产品都有“先试用后购买”选项,因此您可以使用它们将生成的代码与应用程序的一小部分进行比较。NetBeans会自动从Java源文件(我猜其他IDE也会这样做) 也许你可以看看junit插件(链接当前已关闭:-()?商业工具:
- 似乎是该领域最大的参与者。还有一个名为的免费web界面。例如,中有一个独立的工具使用审查。AgitarOne的测试生成主要关注回归测试
- 是另一个大玩家,从1998年就开始了。存在免费试用。AgitarOne和Jtest都是,它们都是基于Eclipse的IDE:s
- 是一个商业产品,显然也可以创建基于java代码的测试。这个产品我没有使用过
- 曾经是一个商业工具(它是Eclipse在2001年的第一个商业插件),但自从谷歌收购开发它的公司以来,该产品一直是免费发布的。它是一个基于Eclipse的完整IDE,是2007年测试生成中Jolt奖的入围者。功能不错,但该工具已经很久没有更新了,所以不幸的是,它不能与当前版本的Eclipse一起使用,并且似乎在使用方面存在问题需要java>=1.5的h代码
- 也是。该工具有一个Eclipse插件、web界面和命令行版本。有一个回归标准记录在案,但显然还不起作用-测试生成了分支覆盖率、弱突变覆盖率或强突变覆盖率的目标
- 使用反馈导向的随机测试生成方法。该工具自2007年开始使用,并一直在持续开发中。Randoop可以生成回归测试和错误查找测试。它是一个健壮可靠的命令行工具,Eclipse插件也存在
- 声称同时使用动态和静态分析,并建立在Randoop之上。其作者声称它已经在谷歌内部使用。我对该软件的经验是,至少当前版本(0.2)似乎存在一些内部问题,而且它的扩展性似乎不好
- 、、和也是可用的免费工具
免责声明:我不属于这些工具中的任何一个,但我已经就这一主题进行了学术研究。Netbeans 8具有内置功能,可以构建比存根更多的单元测试。要使用此功能:
Tools
菜单中选择Create/updatetests
使用Randoop怎么样。这对Java和.NET都有效。你能告诉我们并解释一下为什么要生成它们吗?你想这只是一次尝试,以后保持同步吗?KLE,刚刚更新了问题来回答你的问题。另外,检查一下,为什么会有反对票?接受的答案甚至是相似的,而且不是开源的。。。投票失败的原因可能是NetBeans生成单元测试存根,而不是接受答案中引用的工具的整个单元测试。NetBeans 8实际上生成了完整的单元测试。CodePlex不再可访问。Palus、Eclat、JCrasher和Korat确实依赖于不再可用的库。也许这是对您的l我发现diffblue社区版作为一个免费工具,在2021年可能是一个很好的补充。