2009-04-23 79 views
20

除了DbUnit.NET之外,还有其他'.NET(2.0)数据库访问代码的单元测试框架吗?DbUnit.NET Alternatives

我一直在尝试DbUnit.NET,有些东西不支持。此外,该项目似乎是自2006年5月22日以来的alpha版本...

我们正在重构我们的架构,以便能够使用嘲讽框架进行测试,但在完成该工作之前,我希望有一个类似框架DbUnit.NET(但更好)。

+0

DbUnit.NET也似乎并没有做所有的东西,正常的DbUnit(用于Java)不......你有没有发现另一种选择? – CodingWithSpike 2009-07-30 19:10:15

+0

不,我停止使用DbUnit.NET。 – 2009-08-04 15:03:41

回答

13

几年前我遇到了这个问题。我对DBUnit.Net的状态很恼火。它缺少对我很重要的功能。由于IKVM,使用dotnet的普通Java版本的DBUnit并不是很困难。事实上,我现在正在运行使用原始DBUnit的C#集成测试。下面是如何转换DBUnit的Java版本为.NET程序集:

  • 下载IKVM
  • 将以下jar文件到一个共同的目录:公地集合-3.2.jar共享记录-1.1.jar的JUnit -4.1.jar公地郎2.2.jar DbUnit的-2.2.jar sqljdbc.jar

现在,从与普通JAR目录的工作目录的命令行:

ikvmc -target:libary -keyfile:yoursignature.snk -debug -version:2.2.0.0 -out:dbunit.dll *.jar 

您可以从以下位置获得必要的库:

如果您没有使用SQL Server作为数据库,那么用合适的JDBC驱动程序替换sqljdbc.jar。要直接从.Net代码使用DBUnit,请包含dbunit.dll和相应的IKVM程序集。

我在这里给出的jar版本是旧的。我关于这个问题的笔记已经快三年了。较新的版本可能会工作,但我没有尝试过。

25

我们为我们的项目之一使用NDbUnit。这是一个比DbUnit.NET看起来更活跃的项目。

5

考虑tdunit

TDUnit类似于DBUnit.Net一个单元测试工具。 TDUnit帮助 支持单元测试数据库访问,允许您在测试数据库中保留标识 列和外键约束,允许 允许测试数据XML文件中的依赖项值。

TDUnit使用与DBUnit相似的XML文件来指定要加载到数据库中的测试 数据,但有一个主要区别。 TDUnit 允许创建包含标识列 和表之间关系的测试数据。例如,在TDUnit可以加载 客户行对客户表,然后引用自动生成 ID(标识列)在订单表中的客户。 虽然使用C#3.0编写,但可以在.Net 2.0项目中使用,例如安装.Net Framework 3.5的 。通过指定测试在XML文件中 数据,测试所需的数据可以被保持与 测试和TDUnit插入和移除测试数据。这允许 您的测试数据库保持空白,从而允许更快的更改并且更容易地分发给团队。

〜从项目描述在他们的主页上。