如何在我的情况下使用测试框架?

时间:2018-08-06 21:02:17

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

我们有一个由cmake生成的项目的解决方案。

src文件夹,其中包含所有源代码。 Proj_Service1Proj_Service2Proj_Service3引用相同的Main.cppBase_Service.cpp文件。此外,每个项目都引用了自己的ServiceX.cpp文件。所有项目都是控制台项目(exe)。请参阅下面的解决方案结构:

-Solution
----Proj_Service1
-------Main.cpp
-------Base_Service.cpp
-------Service1.cpp
----Proj_Service2
-------Main.cpp
-------Base_Service.cpp
-------Service2.cpp
----Proj_Service3
-------Main.cpp
-------Base_Service.cpp
-------Service3.cpp

之所以采用上述结构,是因为公司决定每个项目应仅包含与该项目相关的文件。

我想添加Test_Proj项目,该项目将使用googletest测试一项服务或/和所有服务。

当我尝试在ServiceX.cpp中实例化Test_Proj时,由于Proj_ServiceX不是lib,因此显然会出现链接器错误,因此我无法链接到它。

我想做的是创建一个其他类型为“ lib”的项目,将Service1.cppService2.cppService3.cpp文件移到其中,并使所有项目都引用它。基本上:

-Solution
----Service_Proj
-------Base_Service.cpp
-------Service1.cpp
-------Service2.cpp
-------Service3.cpp
----Proj_Service1
-------[Reference to Service_Proj]
----Proj_Service2
-------[Reference to Service_Proj]
----Proj_Service3
-------[Reference to Service_Proj]
----Test_Proj
-------[Reference to Service_Proj]

问题:

  1. 我上面建议的解决方案是唯一的方法吗?
  2. 如果有另一种更好的方法,甚至需要使用其他工具的方法,我都会很高兴听到。

0 个答案:

没有答案