C# 从单独的NUnit测试库引用主项目

C# 从单独的NUnit测试库引用主项目,c#,unit-testing,nunit,projects-and-solutions,C#,Unit Testing,Nunit,Projects And Solutions,我是单元测试的新手,刚从大学毕业,突然自己负责开发和维护一个相当大的应用程序。以前的开发人员(刚刚离开公司)将NUnit与项目引用一起包含,在几个类的底部编写了一些空的测试夹具,并且从未对它做过任何其他事情 我担心如果我现在不开始编写单元测试,当我重构和学习系统时,我将永远无法完成它们,但我在理解如何正确设置测试项目时遇到了困难 有人告诉我,我应该将我的测试项目作为一个单独的类库保存在同一个解决方案中,因此我创建了一个我们的application.test库项目。不过,我不知道如何引用我将在其中

我是单元测试的新手,刚从大学毕业,突然自己负责开发和维护一个相当大的应用程序。以前的开发人员(刚刚离开公司)将NUnit与项目引用一起包含,在几个类的底部编写了一些空的测试夹具,并且从未对它做过任何其他事情

我担心如果我现在不开始编写单元测试,当我重构和学习系统时,我将永远无法完成它们,但我在理解如何正确设置测试项目时遇到了困难

有人告诉我,我应该将我的测试项目作为一个单独的
类库
保存在同一个解决方案中,因此我创建了一个我们的application.test库项目。不过,我不知道如何引用我将在其中测试的项目

在线指南说要将它指向我的主项目的.DLL。。。但是没有一个。我们的项目是一个不生成dll的独立应用程序,我不确定在这种情况下应该做什么


如果您对这里的错误有任何建议,或者能提供更全面的指南,我们将不胜感激。我希望尽快以正确的方式完成此操作。

理想情况下,最好将应用程序分离为基于功能的单独DLL,即将解决方案分离为由类型类库的项目表示的模块。这将使单独测试这些DLL变得更简单。我通常对每个模块(项目)有单独的测试项目


话虽如此,您可以添加一个.exe项目作为对nun it项目的引用,并可以访问所有要测试的命名空间和类,尽管这不是可维护代码的最佳实践。

如果您使用的是Visual Studio,您可以在解决方案中添加对项目的引用,就像这里引用测试项目中的控制台应用程序一样


+1获取合理建议。不幸的是,这5年的开发工作已经由另一个家伙完成了,我在过去几个月里刚刚接到任务:p+1的便利指南和附加图像。我明天回去工作的时候会试一试,然后你可能会得到公认的答案。正确的做法是将单片exe至少拆分为一个exe和一个dll。exe只需编写代码就可以运行,这可能是一个主函数。exe和测试都可以引用(使用)生产dll。然而,正如你所说的“已经有一段时间了”——分裂可能是一个艰难的问题。因此,现在要做的务实的事情(不会在池中引起太多涟漪)就是从测试dll中引用.exe项目(之前不可能,但现在是)。对其进行测试,然后稍后自信地返回拆分。@Gishu感谢您的建议,理解到在这个时间点将其拆分远远超出了我所能做的范围(我离我原来的目标太远了),但是,当事情开始走到一起时,我肯定会记住这一点。现在添加单元测试的好处是,如果您考虑最终将项目拆分为类库,那么当您开始跳跃时,您的测试将充当安全网!