我在单独的项目中写了几个单元测试。在开发时,我每次都将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")
答案 0 :(得分:0)
如果你不需要专门的nunit,你也可以使用内置的visual studio支持进行单元测试...它已经被整合到最新的Express版本中,你不必为问题而烦恼像这样;)
无论哪种方式,我相信你已经误解了单元测试的基础知识。我们从不测试实际的数据库,这是一个非常糟糕的做法。你应该对这个主题做一些研究,看看mocking
这样的理论背后的理论。