2013-06-01 128 views
0

我正在编写一个为数据库编写ADO.NET代码的项目。源代码位于:GenTools。它从数据库读取存储过程和表并输出C#代码。我使用NUnit向项目添加了单元测试,并在测试生成的代码时遇到了绊脚石。测试动态生成的代码

现在,我按照以下步骤来测试生成的代码:

  1. 生成代码
  2. 生成的代码编译成汇编
  3. 加载组件
  4. 使用反射来测试生成代码

这种方法的问题是测试必须按顺序进行。如果前一次失败,下一步将永远不会成功,并且没有任何步骤可以被排除。一个例子是here

我不喜欢这种设置,因为一旦到达步骤#4,对生成的代码的失败测试将阻止其余的运行。

有没有办法确保前3个步骤顺序运行,然后让步骤#4中的所有测试分离出来?我不介意切换测试框架。

+0

也许你正在寻找运行[TestFixtureSetUp]第3步? – YK1

+0

你有没有试过CodeDom? http://msdn.microsoft.com/en-us/library/y2k85ax6(v=vs.110).aspx –

+0

我在步骤1,2和3([示例](https://github.com) /chris-cartwright/GenTools/blob/master/UnitTests/GenTable.cs#L127)),这在TestFixtureSetUp中是没有意义的。如果我可以指定测试装置的顺序,那么解决方案就可以工作。 –

回答