Gallio是MbUnit的作者组织开发的一个开源项目,非常值得从事测试开发的同学们的注意。
根据Gallio网站的描述:Gallio自动化平台是一个开放的,可扩展,和中立的系统,为.NET提供了一个公共的对象模型,运行时的服务和工具(例如测试运行器),在任何数量的测试框架中起协调作用。
Gallio平台的目标是促进建立一个丰富的社区和厂商所开发的大量的测试工具之间互操作的生态系统,以便处理比单个独立测试框架更广泛的测试需求。单元测试、集成测试、性能测试,甚至半自动化的测试都可以利用公共的基础设施。此外还需要有统一的界面,使他们更容易的整合到系统和企业流程中来。
目前版本的Gallio可以运行下面的测试框架,MbUnit 版本2 和 3, MSTest, NBehave,,NUnit,以及 xUnit.Net。Gallio还提供了工具集成CCNet, MSBuild,,NAnt,NCover, Pex, Powershell, Resharper, TestDriven.Net, TypeMock, 和Visual Studio Team System。
Gallio也提供他自己的命令行界面Echo和Windows 界面Icarus,还有一些正在开发之中,也鼓励第三方在他们的应用程序中使用Gallio平台。
下面简要介绍一下它的历史:
2004 1月份 Marc Clifton在codeproject,写了一系列文章讨论单元测试的文章,Marc提出了一种形式化的超越基本的TDD的测试模式, Marc然后把它的思想转化为代码叫做AUT(Advanced Unit Testing),你可以在他的网站找到这个开源项目http://www.marcclifton.com/Projects/AdvancedUnitTesting/tabid/102/Default.aspx。
两个月后Jonathan "Peli"看到Marc的文章,在医院里创建了gUnit(后来叫做MbUnit),Jonathan是在医院里完成了大部分的代码。
MbUnit带来了一些新的思想,新观念并引起了Jamie Cansdale的注意,他正在前往布鲁塞尔的途中就迷上了Peli的工作,并为TD.net作了一个插件,Td.NET是从一个NUnit项目开始的并由于MbUnit的引入,Td.NET支持NUnit。
2005年Peli把MbUnit开源了,在他完成博士论文期间,继续在这个框架上工作。在完成博士论后,Peli获得了一份微软的CLR开发团队的SDET职位,他无法继续参与MbUnit的开发,他短期内把工作交给了Jamie Cansdale,Peli在blog上说需要有人来长期开发MbUnit后不久,Andy Stopford成为了MbUnit的长期管理者。
自从那个时候开始,MbUnit变成了一个框架和项目,发布了两个主要版本后确立了MbUnit成为.NET下主要的测试框架。
2007年的秋天,发布了MbUnit 3版本,这次完全重写了MbUnit的代码,这里面有一个搞笑的事件,版本3的代码开发代号是“Gallileo”,但由于输入错误就成了Gallio。MbUnit 3版本的开发还在继续,开发代号就叫“Gallio”。
在MbUnit v3的开发过程中,MbUnit的核心开发人员Jeff Brown参加了在得克萨斯州首府奥斯汀举行的Alt.Net大会。在这次大会上和其他的开发人员讨论后。Jeff Brown觉得MbUnit团队对于社区的价值,MbUnit可以创建一个中立的平台,MbUnit可以作为许多框架的宿主(hosts),其他的开源项目和商业项目可以利用该平台的服务,创造丰富的互操作性且可扩展的测试解决方案,从而向社区加入具有极大的价值。
经过多次讨论后,决定从MbUnit分离出测试运行器和诞生了Gallio自动化平台。