c++ 与性能指标持续集成
我想为我的开源 C++ 项目建立一个持续集成和测试框架.所需的功能是:
I want to set up a continuous integration and test framework for my open source C++ project. The desired features are:
1. check out the source code
2. run all the unit and other tests
3. run performance tests (these measure the software quality - for example how long does it take the system to complete the test)
4. produce a report based on 3. and 4. daily
5. archive the reports for future reference
要实现这一点,您会推荐哪个测试框架和什么持续集成流程?现在我倾向于谷歌测试框架(我知道一些单元测试框架的比较讨论在其他问题中)用于测试和 Cruisecontrol 用于持续集成.但我不知道 Cruisecontrol 是否允许轻松集成性能指标.
To implement this, which test framework and what continuous integration process would you recommend? Right now I am leaning towards Google Test Framework (I am aware of some of the comparisons of unit test frameworks discussed in other questions) for tests and Cruisecontrol for continuous integration. But I don't know if Cruisecontrol allows easy integration of performance metrics.
编辑:回答 Wilhelmtell,代码应该适用于 Windows 和 Linux.
Edit: To answer Wilhelmtell, code should work with both Windows and Linux.
推荐答案
我今天正在使用 CruiseControl 和 UnitTest++ 来完成这项任务.
I am using CruiseControl and UnitTest++ today for exactly this task.
UnitTest++ 非常好,虽然我觉得有时会受到它的限制.至少比cppunit好10倍.还没试过google的测试框架,下个项目用吧.
UnitTest++ is really nice although I feel sometimes limited by it around the corner. At least it is 10 times better than cppunit. Still haven't tried the google testing framework, it will be for my next project.
CruiseControl 让我非常失望.邮件列表中有一些错误和问题从未得到回答.许多用于管理程序执行和日志记录的默认功能"并不令人满意.我们必须编写自己的报告生成、我们自己的标准输出和标准错误捕获、我们自己的状态邮件.除了定期运行测试并将它们收集到中央网络服务器中之外,CruiseControl 所剩无几.
I have been extremely disappointed by CruiseControl. There are a few bugs and questions asked on the mailing list were never answered. Many of the default "features" to manage program execution and logging were not satisfying. We had to write our own report generation, our own stdout and stderr capturing, our own status mailer. There is not much left for CruiseControl, apart from running test at regular intervals and gathering them in a central web server.
相关文章