【问题标题】:In Visual Studio native unit test, is it possible to couple unit test to a project?在 Visual Studio 本机单元测试中,是否可以将单元测试耦合到项目中?
【发布时间】:2018-06-23 12:00:00
【问题描述】:

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

Solution
-Project 1
-Project 2
-Project 3

最近想实现一个单元测试(或集成测试)以确保一切仍然有效,我有使用 CppUTest 的经验,但想看看 VS 提供的任何东西是否可以“更好地”集成用于此目的。

所以我跟着一个指南,它把我带到了另一个项目。

-单元测试项目(又名项目 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

第三种可能吗?

【问题讨论】:

  • 我会说这是一个意见问题,因此这个问题与“主要基于意见”无关。

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


【解决方案1】:

与公认的答案相反,我想说绝对将您的测试代码放入一个单独的项目中。是否创建单个或多个测试项目是一个见仁见智的问题,但有充分的理由不将测试代码放入发布代码中。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    相关资源
    最近更新 更多