在Visual Studio本机单元测试中,是否可以将单元测试耦合到项目?

时间:2018-06-23 12:00:01

标签: c++ visual-studio unit-testing project

我有一个解决方案,包含三个项目

Solution
-Project 1
-Project 2
-Project 3

最近想实现一个单元测试(或集成测试)以确保一切正常,并且我有CppUTest的经验,但想了解VS是否为此目的提供了更好的集成。< / p>

所以我遵循了一个指南,它使我进入了另一个项目。

-单元测试项目(也称为项目4),从外观上来看只是一个类。

Solution
-Project 1
-Project 2
-Project 3
-Project 4 (Unit test, testing Project 1)

所以我想知道维护单元/集成测试环境的良好实践是什么?

可能是...

一个单元测试项目,多个单元测试类,每个项目一个

Solution
-Project 1
-Project 2
-Project 3
-Project 4 (Unit test, testing Project 1, 2 and 3)

每个工作项目的单元测试项目 一个单元测试项目,多个单元测试类,每个项目一个

Solution
-Project 1
-Project 2
-Project 3
-Project 4 (Unit test, testing Project 1)
-Project 5 (Unit test, testing Project 2)
-Project 6 (Unit test, testing Project 3)

只需将单元测试类应用于现有项目(不确定是否可行)

Solution
-Project 1
 -Code
 -Unit Test
-Project 2
 -Code
 -Unit Test
-Project 3
 -Code
 -Unit Test

第三个选项可能吗?

1 个答案:

答案 0 :(得分:3)

与接受的答案相反,我想肯定是将您的测试代码放入一个单独的项目中。您是创建单个测试项目还是创建多个测试项目都是一个问题,但是有充分的理由不将测试代码放入发布代码中。

主要原因是您不想将单元测试库链接到发行代码。在我的书中这是完全不可接受的,据我所知,Visual Studio具有明确的“ 1项目= 1库”方法,因此我看不出您将如何避免这种情况。

每个项目使用一个单元测试库意味着您可以独立于其他项目开发项目,并且可以轻松指定要运行的测试,而不必为整个解决方案运行测试。您甚至可以设置连续测试来在编写代码时更快地获得有关代码的反馈(实际上不确定是否有人为C ++工作,至少在托管语言中这很普遍)。

此外,如果您使用的是Microsoft的单元测试框架,则可以仅使用模板they provide,该模板还强制您为测试创建一个单独的项目。