当前位置:  开发笔记 > 编程语言 > 正文

Hudson,C++和UnitTest ++

如何解决《Hudson,C++和UnitTest++》经验,为你挑选了2个好方法。

有没有人使用Hudson作为C++项目的Continuous-Integration服务器,使用UnitTest ++作为测试库?

你究竟是如何设置它的?

我知道之前有过几个关于持续集成的问题,但我希望这个问题的范围更窄.

编辑:我会澄清我正在寻找的东西.单元测试失败时,我已经将构建集设置为失败.我正在寻找像Hudson的JUnit支持.UnitTest ++可以创建XML报告(参见此处).那么,也许如果有人知道如何将这些报告翻译成JUnit兼容,那么Hudson会知道怎么吃掉它吗?



1> Patrick John..:

我们正积极地在我的工作场所这样做.

目前,我们使用自由式软件项目:

每隔15分钟检查我们的Subversion存储库以获取更新

调用Windows批处理文件以清理和构建解决方案文件

项目文件构建并运行单元测试作为构建后事件

测试返回单元测试失败main(),因此被视为构建错误

我还测试了一个使用UnitTest ++附带的XmlTestReporter来生成输出文件的配置.该xUnit的插件本身支持这个输出,你可以将任何其他输出一起,虽然我不得不改变与它排在0.1.3版本,以获得记录在测试历史持续时间XSL文件.

关于我们的整合,我们希望改进很多事情; 构建日志很长,难以解析,没有着色或突出显示等,但到目前为止它仍然对我们有益.



2> Gilad Naor..:

我检查了xUnit插件,就像Patrick Johnmeyer在接受的答案中建议的那样.为了完整性,这里是驱动程序代码:

#include 
#include "UnitTest++.h"
#include "XmlTestReporter.h"

int main( int argc, char *argc[] ) {
    std::ofstream f("file.xml");
    UnitTest::XmlTestReporter reporter(f);
    return UnitTest::RunAllTests(reporter, UnitTest::Test::GetTestList(), NULL, 0);
}

在Hudson配置中,选中"发布测试工具结果报告"并将其指向 "file.xml"


对于较新版本的UnitTest ++(此时为v1.4),该代码不起作用.main的主体应该是:std :: ofstream f("file.xml"); UnitTest :: XmlTestReporter记者(f); UnitTest :: TestRunner亚军(记者); return runner.RunTestsIf(UnitTest :: Test :: GetTestList(),NULL,UnitTest :: True(),0);
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有