2012-12-23 31 views
4

“本地持续集成系统”可能不是正确的术语,但我希望找到的是一个持续集成系统,可以配置为监视对本地文件(特别是C++文件)的更改,并且1)尝试编译受影响的目标文件(在第一次失败时停止),并且如果成功并且没有新的源文件更改2)链接受影响的二进制文件,如果成功并且没有新的源文件更改3)运行受影响的测试。用于C++的本地持续集成系统?

通过监视器对本地文件的更改,我不是指监视器向修订控制系统提交,而是保存本地文件的状态。理想情况下,系统将提供到源编辑器的集成,以便它可以监视编辑器中尚未保存到磁盘的更改。

理想情况下,它还会提供当前和最近状态的图形指示(最好在Windows 7上),以便在需要时快速钻入故障。

我发现的最接近的东西是nose,如here所述,但只涵盖运行Python测试而不构建C++文件。

回答

2

最接近你要找的是cdashBoost test bench;我认为像C++这样的工具对于C++来说永远不会存在,因为在编辑单个文件之后编译每个项目在高效的C++工作流程中只是浪费时间。

+0

我赞成通过分享松散的相关链接来增加讨论的内容,但我不同意这样的评估:它永远不会存在。我认为在最近的变化情况下重新启动建筑应该是可行的。此外,我的目标是通过最小化开发人员(即我)需要等待构建完成的时间来为开发人员交易机器时间。 –

+0

将您的代码库拆分为多个库,这是在整个工作流程中花费更少时间的有效方法,请记住,您的每一次更改都会引入错误,并且您有一个单一的方法,您会后悔的。 – user1849534

+0

从我的经验来看,这种方法仍然没有像Python或C#一样使用等待时间。当我最近回到一个Python代码库时,这个惊人的差异真的让我感到震惊,这个代码库比我刚刚研究的C++代码库更大,我注意到花费更少的时间来解释Python代码并且在4次不同的时间运行测试(CPython,带有2个不同标志的IronPython和Jython),那么只需构建一个较小的C++代码库即可完成一个平台的调试配置。 –

2

继续整合今天是一个上升的概念,所以你并不孤单。

假设你正在开发Windows,如果您正在使用微软的Visual Studio
工作,你可能会考虑微软的Visual Studio Team Foundation Server (TFS)
(以前Visual Studio Team System)。
这会给你源代码控制,在一个包构建的自动化
以极大的整合,微软的产品,当然
的(我认为这是对MSDN用户提供免费的版本)。

如果不是热衷于微软的产品,或只是为了寻找构建自动化,
我会推荐一个伟大的开源继续整合工具:
Jenkins CI

祝你好运!

2

我会看Jenkins CI - 它是一个很好的工具,可以在任何平台上工作,并且可以配置为几乎可以做任何事情。我用它来运行与移动电话交谈的Python代码,打电话并记录这些电话(并测试了电话的“质量”,尽管我的项目从未获得英镑×××的真实质量软件,因为我们只是在展示一个概念),然后詹金斯会生成“它的工作效果如何”的图表。

你也可以做你所描述的“链接” - 所以它会发现你的源码已经改变了,试图建立它[通常这是使用make完成的,所以它会自动停止在第一个错误的文件(尽管它可能在一个文件中有数百个错误!)]。编译并建立成功,然后链接到运行测试。不完全确定你如何确定什么是“相关”。如果你的测试周期不是很大,我会把它们全部运行起来!