将单元测试附加到C#项目的标准方法

时间:2013-04-01 21:29:50

标签: c# unit-testing nunit

我在单独的项目中写了几个单元测试。在开发时,我每次都将dll加载到NUnit.exe中以检查结果。鉴于我完成了编写单元测试,如何组织和附加单元测试到解决方案。

我尝试在解决方案目录中创建“tools”文件夹,然后放置所有与NUnit相关的库,并在测试项目的postbuild事件中,我像下面一样连接了nunit并且它可以工作。

"$(SolutionDir)tools\nunit\nunit-console.exe" "$(TargetPath)"

但是在我的一个测试中,我指的是一个sqlite DB。如果我硬编码它的位置它工作正常但我打算将它放在“App_Data”文件夹下的测试项目中。所以,我尝试使用下面的代码来获取相对路径,但它不起作用。但是当我将文件复制到“tools”文件夹时它工作正常,我猜测执行上下文来自NUnit文件夹。

Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),"App_Data\\test.txt")

1 个答案:

答案 0 :(得分:0)

如果你不需要专门的nunit,你也可以使用内置的visual studio支持进行单元测试...它已经被整合到最新的Express版本中,你不必为问题而烦恼像这样;)

无论哪种方式,我相信你已经误解了单元测试的基础知识。我们从不测试实际的数据库,这是一个非常糟糕的做法。你应该对这个主题做一些研究,看看mocking这样的理论背后的理论。