摘要: FRUIT只能用于Fortran编译器,尽管使用Ruby可以增强其功能。请查看以下作者Andrew Chen的答案。
===========================================
似乎Fortran的可用单元测试框架(XUnit)包括:
フニツ
http://nasarb.rubyforge.org/
果
http://sourceforge.net/projects/fortranxunit/
flibs
http://flibs.sourceforge.net/
ObjexxFTK(商业)
http://www.objexx.com/ObjexxFTK.html
在他们的网页中,funit,fruit和flibs提到他们依靠Ruby来运行。我不知道ObjexxFTK。在我看来,Java,C#和Delphi等中的XUnit框架只依赖于相应的语言本身。那为什么Fortran框架选择依赖Ruby而不是Fortran呢?
答案 0 :(得分:18)
这是Fruit的作者Andrew Chen。
在FRUIT的核心,它是纯粹的FORTRAN。核心功能包括断言,夹具设置,摘要,错误计数和报告。设计目标是以自己的语言提供测试功能。
FRUIT 1.0大约8年前开发,纯粹的FORTRAN。然后添加了Ruby,我认为Rake是在2008年添加的。
这在FORTRAN中尤其重要,因为在构建环境中引入另一种语言或编译器可能会让人望而却步。
然而,为了使测试框架灵活,优雅和丰富的信息,其他更灵活的语言是正确的工具(甚至我的同事仍然认为FORTRAN可以做任何事情,世界由FORTRAN运行)。选择Ruby是因为它具有可读性,易于修改。
据我所知,funit不能在没有Ruby的情况下运行,但FRUIT只能运行FORTRAN编译器。它已通过英特尔F95和g95测试。
请查看FRUIT Wiki中的2个教程: 1.在3分钟内将水果加入你的饮食中(纯FORTRAN) 2.在20分钟内将水果添加到您的饮食中(使用Ruby)
http://sourceforge.net/apps/mediawiki/fortranxunit/index.php?title=Main_Page
希望它有所帮助。
Andrew Hang Chen陈航 http://blog.sina.com.cn/foreopen
答案 1 :(得分:10)
在Fortran中编写一个具有真实XUnit克隆的复杂性,功能和动态特性的单元测试框架将是非常可怕的,它实际上是为数值分析而设计的。
答案 2 :(得分:1)
这还取决于您对单元测试框架的期望。如果你想要一个GUI,或者它是一个IDE的插件,那么fortran可能不是最简单的方法,即使它当然是可行的。这就是为什么其他语言通常是首选的原因。
我为fortran写了一个简单的单元测试框架,一个用于python的la鼻子。基于控制台,但它完成了它的工作。这一切都取决于你的需求。 (让我觉得我应该让它适应更普遍的用途并释放它。)
因为您似乎正在使用delphi,您可以将文件对象放入dll并将其插入dunit,例如。