为什么Fortran中的单元测试框架依赖于Ruby而不是Fortran本身?

时间:2011-03-11 09:35:27

标签: ruby unit-testing fortran

摘要: 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呢?

3 个答案:

答案 0 :(得分:18)

Xichen,

这是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,例如。