Visual Studio C++:使用 google test 进行单元测试 exe 项目?

发布于 2024-11-11 18:20:32 字数 244 浏览 3 评论 0原文

使用 Visual Studio 2010 C++。我正在尝试单元测试并决定尝试 Google Test (gtest)。我有一个现有的项目,可以编译为 MFC 可执行文件(我也对如何测试编译为 DLL 的项目感兴趣)。我对单元测试惯例的理解是,您应该为测试创建一个新的单独项目。因此,我在相同的解决方案中为我的单元测试创​​建了一个新项目。但如何链接这些项目呢?我可以从我的测试项目中测试我的 exe 项目的任意函数/方法吗?

执行此操作的常规方法是什么?

Using Visual Studio 2010 C++. I'm experimenting with unit testing and decided to try Google Test (gtest). I have an existing project which compiles to an MFC executable (I'm also interested in how to test a project that compiles to a DLL). My understanding of the convention for unit testing is that you should create a new separate project for your tests. So I created a new project in the same solution for my unit tests. But how do I link the projects? Can I test arbitrary functions/methods of my exe project from my test project?

What is the conventional way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你列表最软的妹 2024-11-18 18:20:32

我认为组织单一测试的最佳方法是:

  • 不要更改您的主要项目。该结构应该独立于您的测试操作。在我看来,将项目更改为大型静态库和可执行文件确实不优雅。
    相反,添加构建后操作以将所有 obj 文件聚合到一个静态 lib 文件中,该文件仅由您的测试项目使用。

  • 创建一个简单的测试项目,链接到您的测试框架和您之前生成的静态库。

    创建

  • 享受。

主要优点是您无需触及要测试的项目,也无需将所有源代码包含到测试项目中。

要了解如何为 Visual Studio 做到这一点,您可以查看这篇文章: 链接到多个 .obj 以对控制台应用程序进行单元测试

I think the best way to organize unitary test is:

  • Don't change your main project. The structure should be independent of your test actions. In my opinion, changing your project to a big static lib AND an executable is really not elegant.
    Instead, add a post build action to aggregate all obj files into a static lib file that will be used ONLY by your test project.

  • Create a simple test project, linking to your test framework AND the static library you have previously generated.

  • Enjoy.

The main advantages is you don't touch the project you want to test and you don't include all source code to your test project.

To see how you can do that for visual studio, you can see this post: Linking to multiple .obj for unit testing a console application

雨的味道风的声音 2024-11-18 18:20:32

将要测试的功能放入链接到测试项目和 MFC 项目的静态库中,或者将文件放入这两个项目中。第一个更复杂,但第二个会导致你将所有内容编译两次......

Either put the functionality you want to test into a static library which is linked into both your test project and your MFC project, or put your files in both projects. The first is more complicated, but the second will cause you to compile everything twice....

第七度阳光i 2024-11-18 18:20:32

我已经准备了一个 github 存储库,其中包括与 Billy 的答案并行的 Visual Studio 2015 解决方案。您可以直接使用它,无需任何额外的要求或依赖。

https://github.com/fuatcoskun/GoogleTestVS2015

我希望它有帮助...

I have prepared a github repo including Visual Studio 2015 solution in parralel of Billy's answer. You can use it directly without any additional requirement or dependency.

https://github.com/fuatcoskun/GoogleTestVS2015

I hope it helps...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文