代码之家  ›  专栏  ›  技术社区  ›  Iancovici

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

  •  2
  • Iancovici  · 技术社区  · 7 年前

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

    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
    

    第三种选择可行吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Voo    7 年前

    与公认的答案相反,我想说的是一定要将测试代码放到一个单独的项目中。不管您是创建单个还是多个测试项目都是一个意见问题,但是有充分的理由不将测试代码放入您的发布代码中。

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

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

    另外,如果您使用的是Microsoft的单元测试框架,那么您可以只使用模板 they provide 这也迫使您为测试创建一个单独的项目。