【问题标题】:Beginning Code::blocks and UnitTest++开始代码::blocks 和 UnitTest++
【发布时间】:2011-09-18 16:20:28
【问题描述】:

我即将开始一个 C++ 项目,但我还停留在基础知识上。

我想使用(linux)Code::Blocks IDE,创建一个普通的项目很容易。但是我想使用 UnitTest++ 框架进行 TDD,但我不知道如何干净地设置所有内容。

我已经向question 询问了UnitTest::RunAllTests() 命令的放置位置,他们告诉我最好的位置是单独程序的main()

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

  • 拥有自己的“真实”项目main()
  • 包含测试的单元测试项目和 main() 内部带有 UnitTest::RunAllTests()

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

我的问题是:

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

【问题讨论】:

    标签: c++ unit-testing codeblocks


    【解决方案1】:

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

    1. 按照official documentation page 上的说明,我已将包含编译库和所有源文件的 UnitTest++ 文件夹放在我的项目路径中。
    2. 然后,我为所有单元测试创​​建了一个测试项目,其中的 main 函数包含著名的UnitTest::RunAllTests()。我在这里将$exe_output 作为构建后过程,以便在我每次构建此项目时自动执行测试。
    3. 我创建了“真实”项目,我的待测试代码将在其中运行。在构建设置中我将测试项目指定为真实项目的依赖项,这样每次构建真实项目时,它也会先构建测试项目。

    通过这些设置,我可以处理我的测试和真实代码,并且我只需要构建真实的代码来执行更新的测试。任何失败的测试也会导致构建失败。

    现在还有两个问题:“这是最好的方法吗?”和“现在每个项目都位于不同的目录中。这样保留它是否更明智,或者我应该将每个测试与要测试的真实代码放在同一个文件夹中?”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多