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

时间:2009-07-13 13:49:11

标签: visual-studio unit-testing nunit

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

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

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

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

在项目中使用它时,我为我的所有测试使用了一个单独的文件夹。然后,如果您选择执行实际构建,则可以轻松删除该文件夹。

我也用一个单独的项目完成了你所说的话。我觉得这很好。

答案 2 :(得分:1)

通常情况下,我有一个包含许多项目的解决方案,在该主要解决方案中没有任何单元测试 - 这是在发布模式下构建的真正构建的解决方案。

对于特定项目,我有一个单独的解决方案,其中包含我想要进行单元测试的项目(以及任何从属项目)和一个MyProjectName.UnitTests项目,该项目包含该项目的所有单元测试。然后在Continuous Integration机器中配置这些单元测试项目,以便在调试模式下构建,然后运行测试。

适合我。

答案 3 :(得分:1)

假设测试项目与正在测试的项目处于同一解决方案中,一个小的改进可能是添加对测试项目的引用,而不是Debug文件夹中的二进制文件。

除了这里提到的内容之外,我还经常使用InternalsVisibleTo程序集属性来使我正在测试的程序集的内部类对测试程序集可见,即使它们也可以直接测试。

根据您选择的隔离框架,您可能还需要使受测试的程序集内部对隔离框架组件可见,以便能够模拟/存储某些内部行为。

答案 4 :(得分:0)

我认为提供包含代码的dll没有任何错误,这证明即使生产环境中的dll仍然在已建立的参数内工作:)。如果出现奇怪的错误,您仍然可以使用release dll运行单元测试,看看是否有一些奇怪的方式。正因为如此,并且因为我不喜欢在解决方案中拥有两倍数量的项目,所以我更喜欢在每个项目中添加一个Tests文件夹,其中包含所有单元测试代码。简单而有效。

此致

Sebastiaan