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

In Visual Studio native unit test, is it possible to couple unit test to a project?

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

Solution
-Project 1
-Project 2
-Project 3

最近想实施单元测试(或集成测试)以确保一切正常,我有使用 CppUTest 的经验,但想看看 VS 是否必须提供任何东西 "better" 集成这个目的。

所以我遵循了一个指南,它引导我进行了另一个项目。

-单元测试项目(又名项目4),从外观上看只是一个class。

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

所以我想知道维护 unit/integration 测试环境的最佳做法是什么?

可能是……

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

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

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

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)

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

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

第三种可能吗?

与接受的答案相反,我会说一定要把你的测试代码放到一个单独的项目中。创建单个或多个测试项目是见仁见智的事情,但有充分的理由不将测试代码放入发布代码中。

主要原因是您不想link单元测试库进入发布代码。这在我的书中是完全不能接受的,据我所知 Visual Studio 有一个明确的“1 个项目 = 1 个库”的方法,所以我不明白你如何避免这种情况。

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

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