开始Code :: blocks和UnitTest ++

时间:2011-09-18 16:20:29

标签: c++ unit-testing codeblocks

我即将开始一个C ++项目,但我仍然坚持基础。

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

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

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

  • 具有自己的main();
  • 的“真实”项目
  • 包含测试的单元测试项目以及内部有main()的{​​{1}}。

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

我的问题是:

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

1 个答案:

答案 0 :(得分:4)

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

  1. 按照official documentation page上的说明,我将UnitTest ++文件夹与已编译的库和所有源文件放在项目的路径中。
  2. 然后我为所有单元测试创​​建了一个测试项目,主要功能包含着名的UnitTest::RunAllTests()。我在这里将$exe_output作为后期构建过程,以便每次构建此项目时都自动执行测试。
  3. 我创建了“真实”项目,我的代码将在其中进行测试。在构建设置中,我将测试项目指定为实际项目的依赖项,这样每次构建真实项目时,它都会首先构建测试项目。
  4. 通过这些设置,我可以处理我的测试和真实代码,我只需要构建真正的代码来执行更新的测试。任何失败的测试也会使构建失败。

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