为nUnit测试设置Visual Studio项目的最佳实践

7

人们如何为Visual Studio设置他们的项目,如何引用可测试的应用程序?

目前,我已经向我的解决方案中添加了一个创建.dll文件的单独项目,其中包含所有的测试用例和对nunit.framework的引用,它还直接引用了VS生成输出的Debug/文件夹中的主.exe文件。

但我不知道这是否是一个好主意,或者最佳实践是什么,有人想分享他们的做法吗?

5个回答

3

对我来说听起来不错 - 你可以在没有测试组件和NUnit的情况下分发或部署你的应用程序,但仍然测试所有内容。这基本上是标准做法。


2

在项目中使用测试时,我通常会将它们存放在单独的文件夹中。这样,如果你选择这样做,在实际构建时可以轻松地删除该文件夹。

我也曾经尝试过将测试放在一个单独的项目中,我认为这也是可行的。


1
通常情况下,我有一个解决方案,其中包含许多项目,但没有任何单元测试,这是在 Release 模式下进行真正构建的解决方案。
对于特定项目,我有一个单独的解决方案,其中包含我想要进行单元测试的项目(和任何依赖项),以及一个名为 MyProjectName.UnitTests 的项目,该项目包含了该项目的所有单元测试。然后,在持续集成机器中配置这些单元测试项目以在调试模式下进行构建,然后运行这些测试。
对我来说很有效。

1
假设测试项目与被测试的项目在同一个解决方案中,一个小改进是添加对被测试的项目的引用,而不是对 Debug 文件夹中的二进制文件的引用。
除了这里提到的内容外,我通常还会使用 InternalsVisibleTo 程序集属性,使我正在测试的程序集的内部类对测试程序集可见,即它们也可以直接进行测试。
根据您选择的隔离框架,您可能还需要使受测试的程序集的内部可见性对隔离框架组件可见,以便能够模拟/存根某些内部行为。

0

我认为没有任何问题提供包含代码的dll,证明即使在生产环境中,dll仍在已建立的参数范围内工作 :). 在出现奇怪错误的情况下,您仍然可以使用发布的dll运行单元测试,并查看是否以奇怪的方式破坏了某些内容。因此,由于这个原因,以及我不喜欢在解决方案中有两倍数量的项目,我更喜欢在每个项目中添加一个Tests文件夹,其中包含所有单元测试代码。简单而有效。

敬礼,

Sebastiaan


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接