NUnit运行测试的最佳实践?

时间:2016-05-17 08:37:32

标签: c# unit-testing dll nunit

我们有一个很大的.Net解决方案(大的,我的意思是,180万行代码,~300个项目)。我们之前使用MsTests进行了一些UnitTests(非常小的覆盖),我们决定比以前认真对待单元测试,现在,代码的每个新部分都应该进行编码单元测试。

我们也决定使用NUnit。

我的问题是:现在我们有一大堆NUnit测试,我们希望每晚都运行它们(我们有一台TFS构建机器)。

我们遇到的问题如下: 我们有一些项目可以动态加载DLL(通过示例搜索子文件夹中的所有DLL),并且一些单元测试需要加载这些DLL才能返回预期的结果。

目前,我们有一个输出目录,我们所有的项目都是以此为目标。在这个输出目录中,我们有一个单元测试的子文件夹:

Debug/x86
 - /sub folder for dynamic loading one/
 - /sub folder for dynamic loading two/
 - /sub folder for dynamic loading three/
 - /sub folder with DLL not loaded with dynamic but [with probing element app.config][1]/
 - /UnitTests/
 - /lot of DLL
 - /Some executable of our solutions

目前,我们的测试失败了,因为我们在lib的根目录上测试了一些DLL,但是找不到动态加载的DLL。

这里的最佳做法是什么? 我可以想象一些场景:

  • 将UnitTest放在根目录
  • 在UnitTest目录中复制(发布后事件)DLL
  • 另一个神奇的技巧,让我们可以引用我们父母的一些文件夹"文件夹?

1 个答案:

答案 0 :(得分:1)

在Appbase设置为root的情况下运行测试。如何实现这一点取决于您运行测试的方法,这是未说明的。例如,如果使用nunit3-console有命令行参数,或者使用NUnit3 VS适配器,则可以使用.runsettings文件。