我即将开始一个 C++ 项目,但我还停留在基础上。
我想使用 (linux) Code::Blocks IDE,创建一个普通项目很容易。但是我想使用 UnitTest++ 框架进行 TDD,但我不知道如何干净利落地设置所有内容。
我已经问过 question关于放置 UnitTest::RunAllTests()
命令的位置,他们告诉我最好的位置是单独程序的 main()
。
我如何在 Code::Blocks 中做到这一点?我想我需要创建 2 个项目:
- 拥有自己的
main()
的“真实”项目; - 包含测试和
main()
的单元测试项目,其中包含UnitTest::RunAllTests()
。
然后以某种方式构建第一个项目并在其构建过程中运行第二个项目。我还不知道该怎么做,但我可以自己找出答案。
我的问题是:
- 这是正确的方法吗?
- 我是否还必须为 UnitTest++ 框架创建一个项目,以便让其他人在其他平台上构建它?还是将已编译的库放在项目的路径中就足够了?
- 如何将这些项目的目录组织在一起?将与每个包相关的测试放在与该包相同的目录中会很好,但是在同一目录树中可以有多个项目吗?
最佳答案
我会部分回答我自己的问题,因为我已经设法让一切正常工作。
- 按照 official documentation page 上的说明进行操作,我已将包含已编译库和所有源文件的 UnitTest++ 文件夹放在我的项目路径中。
- 然后我为所有单元测试创建了一个测试项目,其中一个主要函数包含著名的
UnitTest::RunAllTests()
。我将$exe_output
作为构建后过程放在此处,以便在每次构建此项目时自动执行测试。 - 我创建了要测试的代码所在的“真实”项目。在build设置中我将测试项目指定为真实项目的依赖项,这样每次构建真实项目时,它也会先构建测试项目。
有了这些设置,我就可以在我的测试和真实代码上工作,而且我只需要构建真实的代码就可以执行更新的测试。任何失败的测试也会导致构建失败。
现在还有两个问题:“这是最好的方法吗?”和“现在每个项目都位于不同的目录中。这样保留它更明智还是我应该将每个测试放在与要测试的真实代码相同的文件夹中?”
关于c++ - 开始 Code::blocks 和 UnitTest++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7462752/