开始代码::块和unittest++

Beginning Code::blocks and UnitTest++

本文关键字:unittest++ 块和 开始 代码      更新时间:2023-10-16

我即将开始一个c++项目,但我在基础上卡住了。

我想使用(linux) Code::Blocks IDE,它很容易创建一个正常的项目。然而,我想用unittest++框架做TDD,我不知道如何把所有的东西都设置得干净。

我已经问了一个关于把UnitTest::RunAllTests()命令放在哪里的问题,他们告诉我最好的地方是一个单独程序的main()

如何在Code::Blocks中执行此操作?我想我需要创建2个项目:

  • 自带main()的"真实"项目;
  • 包含测试和UnitTest::RunAllTests()main()的单元测试项目。

然后以某种方式构建第一个项目并在构建过程中运行第二个项目。我还不知道怎么做,但我可以自己找出答案。

我的问题是:

    这是正确的方法吗?
  1. 我是否必须为unittest++框架创建一个项目,以便让其他人在其他平台上构建它?或者在项目的路径中删除编译的库就足够了吗?
  2. 如何将这些项目的目录组织在一起?将与每个包相关的测试放在与该包相同的目录中会很好,但是在同一目录树中有多个项目可以吗?

我将部分回答我自己的问题,因为我已经设法使一切正常。

    按照官方文档页面上的说明,我已经将unittest++文件夹与编译库和所有源文件放在我的项目路径下。然后我为所有的单元测试创建了一个测试项目,main函数包含著名的UnitTest::RunAllTests()。我把$exe_output作为一个后构建过程,以便每次构建这个项目时自动执行测试。
  1. 我创建了"真正的"项目,我的代码将被测试。在构建设置中,我将测试项目指定为真实项目的依赖项,因此每次构建真实项目时,它也会首先构建测试项目。
有了这些设置,我可以在我的测试和实际代码上工作,我只需要构建真实的代码来执行更新的测试。任何失败的测试也会导致构建失败。

现在还有两个问题:"这是最好的方法吗?"answers"现在每个项目都在不同的目录中。"这样做是明智的,还是应该将每个测试与要测试的实际代码放在同一个文件夹中?"