为什么Fortran中的unit testing框架依赖于Ruby而不是Fortran本身?

总结: FRUIT只能用于Fortran编译器,尽管使用Ruby可以增强其function。 请查看以下作者Andrew Chen的答案。

===========================================

似乎Fortran的可用unit testing框架(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呢?

编写具有真正XUnit克隆的复杂性,function和动态特性的unit testing框架在Fortran中是非常可怕的,它实际上是为数值分析而设计的。

洗尘,

这是Fruit的作者Andrew Chen。

在FRUIT的核心,它是纯粹的FORTRAN。 核心function包括断言,夹具设置,摘要,错误计数和报告。 设计目标是以自己的语言提供测试function。

FRUIT 1.0大约8年前开发,纯粹的FORTRAN。 然后添加了Ruby,我认为Rake是在2008年添加的。

这在FORTRAN中尤其重要,因为在构建环境中引入另一种语言或编译器可能会令人望而却步。

然而,为了使测试框架灵活,优雅和丰富的信息,其他更灵活的语言是正确的工具(甚至我的同事仍然认为FORTRAN可以做任何事情,而世界由FORTRAN运行)。 选择Ruby是因为它具有可读性,并且易于修改。

据我所知,funit不能在没有Ruby的情况下运行,但FRUIT只能运行FORTRAN编译器。 它已经过Intel F95和g95的测试。

请查看FRUIT Wiki中的2个教程:1。在3分钟内将FRUIT添加到您的饮食中(纯FORTRAN)2。在20分钟内将水果添加到您的饮食中(使用Ruby)

http://sourceforge.net/apps/mediawiki/fortranxunit/index.php?title=Main_Page

希望能帮助到你。

Andrew Hang Chen陈航http://blog.sina.com.cn/foreopen

这还取决于您对unit testing框架的期望。 如果你想要一个GUI,或者它是一个IDE的插件,那么fortran可能不是最简单的方法,即使它当然是可行的。 这就是为什么其他语言通常是首选。

我为fortran写了一个简单的unit testing框架,一个用于python的la鼻子。 基于控制台,但它完成了它的工作。 这一切都取决于你的需求。 (让我觉得我应该让它适应更普遍的使用并释放它。)

因为你似乎在使用delphi,你可以把你的文件对象放在dll中,然后将它们插入dunit。

Interesting Posts