开始代码::块和unittest++
Beginning Code::blocks and UnitTest++
我即将开始一个c++项目,但我在基础上卡住了。
我想使用(linux) Code::Blocks IDE,它很容易创建一个正常的项目。然而,我想用unittest++框架做TDD,我不知道如何把所有的东西都设置得干净。
我已经问了一个关于把UnitTest::RunAllTests()
命令放在哪里的问题,他们告诉我最好的地方是一个单独程序的main()
。
如何在Code::Blocks中执行此操作?我想我需要创建2个项目:
- 自带
main()
的"真实"项目; - 包含测试和
UnitTest::RunAllTests()
的main()
的单元测试项目。
然后以某种方式构建第一个项目并在构建过程中运行第二个项目。我还不知道怎么做,但我可以自己找出答案。
我的问题是:
- 这是正确的方法吗?
- 我是否必须为unittest++框架创建一个项目,以便让其他人在其他平台上构建它?或者在项目的路径中删除编译的库就足够了吗?
- 如何将这些项目的目录组织在一起?将与每个包相关的测试放在与该包相同的目录中会很好,但是在同一目录树中有多个项目可以吗?
我将部分回答我自己的问题,因为我已经设法使一切正常。
- 按照官方文档页面上的说明,我已经将unittest++文件夹与编译库和所有源文件放在我的项目路径下。然后我为所有的单元测试创建了一个测试项目,main函数包含著名的
- 我创建了"真正的"项目,我的代码将被测试。在构建设置中,我将测试项目指定为真实项目的依赖项,因此每次构建真实项目时,它也会首先构建测试项目。
UnitTest::RunAllTests()
。我把$exe_output
作为一个后构建过程,以便每次构建这个项目时自动执行测试。现在还有两个问题:"这是最好的方法吗?"answers"现在每个项目都在不同的目录中。"这样做是明智的,还是应该将每个测试与要测试的实际代码放在同一个文件夹中?"
相关文章:
- 为什么这个C++程序在代码::块和在线 IDE 之间返回不同的结果?
- 如何在C++类中正确使用 CUDA 中的块和线程
- QT信号和插槽.滑块和进度栏
- 相同的测试用例,但代码块和Ideone的输出不同
- 代码::块和boost 1.55:当存在动态库时,不使用静态库
- 代码块和lambdas c++11
- 代码块和 G++ 错误"is private"
- 简单C++程序在 Xcode、代码块和终端中运行错误
- 在 G++ Ubuntu 中工作,但在 Visual Studio 中显示分段错误,在 Mac 中的代码块和 G++ 中
- 使用 CUDA 中的不同块和线程进行性能优化
- 块和表达式必须具有常量值错误
- 代码::块和MPI
- 为什么shared_ptr<>必须分别分配控制块和托管对象?
- 在try-catch语句中的try块和所有catch时钟的末尾执行相同的操作
- 矢量实现了许多块和没有调整大小的副本
- C++ 代码块和SFML库故障
- Ubuntu 14.04TLA上的代码块和Gtkmm
- 代码块和SDL输出.奇怪的行为
- Objective-C块和c++对象
- 开始代码::块和unittest++