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

本文关键字:项目 标准 方式 单元测试 | 更新日期: 2023-09-27 18:06:48

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

我试着在解决方案目录中创建"工具"文件夹,然后放置所有与NUnit相关的库,在测试项目的postbuild事件中,我像下面这样连接了NUnit,它就工作了。

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

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

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

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

如果您不需要特别的nunit,您还可以使用内置的visualstudio支持进行单元测试。。。它也被纳入了最新的Express版本中,你不必遇到这样的问题;(

不管怎样,我相信你误解了单元测试的基本原理。我们从不针对实际数据库进行测试,这是一种非常糟糕的做法。你应该对这个话题做一些研究,看看mocking背后的理论。