我开始使用NUnit在.NET 4.0上使用Visual Studio 2010在C#中编写测试用例。我想使用NUnit来测试.dll(一个C#类库项目)的公共函数。如何设置NUnit以使用我的项目?
我应该将NUnit代码添加到同一个类库项目进行测试,还是应该在同一个NUnit测试用例的解决方案中添加单独的项目?哪种是最佳做法?
如果我需要为NUnit测试用例创建一个单独的项目,我应该将其作为类库项目还是可执行文件?如果我把它作为一个类库项目,我该如何运行它?
如果我需要针对可执行文件进行测试而不是类库项目,那么流程和/或项目是否有任何更改?
答案 0 :(得分:15)
Re 2
通常,将[测试用例dll]与[业务逻辑dll]分开。您的业务逻辑DLL不应包含任何NUnit知识,以分离关注点并简化部署/维护。
您的测试用例dll应该包含对NUnit和业务逻辑dll的引用。
您无需共享命名空间。您可以通过修改业务逻辑dll的AssemblyInfo.cs文件以将内部暴露给测试用例dll,将业务逻辑dll的内部成员公开给测试用例dll。这使您可以在业务逻辑DLL中保留所需的可见性。
Re 3
您的测试用例应该进入dll(即类库项目)。您可以将其直接加载到NUnit的UI中,或者在集成环境中使用NUnit的控制台运行器来自动运行测试。
我是怎么做到的:
祝你好运 - 也试试测试项目类型avl。在Visual Studio中,它与NUnit非常相似。我仍然更喜欢NUnit,但在学习它的同时尝试各种选择也很不错。
答案 1 :(得分:8)
关于您的评论:当您将NUnit.exe设置为测试类库的默认Start可执行文件(包含您的单元测试的那个)时,您告诉NUnit您要测试哪个DLL;在第一次之后,它将随后记住您正在运行测试的项目。
您还希望确保单元测试库中有引用其他项目的引用。
同样,我列出的教程经历了所有这些。
答案 2 :(得分:2)
2:您应该将所有NUnit测试放在同一解决方案中的单独项目中。构建项目构建测试,反之亦然,所以当你正在TDD这个项目时(你正在这样做,对吗?)你可以简单地运行测试,它将构建所需的一切。 3:类库。如果你使用NUnit,它不需要由Windows运行;你只需要使用测试运行器。
答案 3 :(得分:2)
我会为测试代码添加一个单独的测试项目,并从中引用NUnit和受测试的库。它应该是一个类库,它由NUnit测试运行器运行,例如nunit-console test_assembly.dll
- 请参阅documentation。