问题标签 [continuous-integration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2423 浏览

php - Phing 和 PHPUnderControl 有什么区别?

我们目前使用手动设置和配置脚本以及手动持续集成脚本来构建和部署我们的应用程序。我正在考虑使用为这些目的设计的第三方系统将其正式化。

我以前研究过 Phing,我知道它基本上就像 Ant。但是,我的 Ant 经验有些有限,所以对我没有多大帮助。(我所做的大部分 Java 工作只是部署为 jar 文件)。

之前研究过Cruise Control,了解到phpUnderControl是CC的一个插件。但是,Phing 说它也适用于 CC。所以我不清楚这里的重叠。我是否需要 Phing 和 phpUnderControl 才能与 CruiseControl 一起工作,还是它们是互斥的?

我真正需要的是可以:

  • 查看来自 SVN 的源代码
  • 从 SQL 文件安装数据库
  • 从一系列模板和一个ini文件生成一些本地配置文件
  • 运行我们所有的单元测试(目前是 ST,但很容易转换为 PHPUnit)并在任何测试中断时向开发团队发送电子邮件(当然还有堆栈跟踪)
  • 为应用程序生成 API 文档并将其放在某处
  • 运行测试覆盖率报告

现在,我们几乎以一种或另一种形式拥有所有这些。但是,将所有这些自动化并捆绑在一个过程中会很好。

0 投票
5 回答
5819 浏览

php - phpUnderControl 的替代方案 - 它是最好的吗?

我正在为 PHP 寻找一个好的系统,它可以执行 UnitTesting、Subversion、编码标准。

我很想听听你的建议,哪一个是最好的以及为什么。我将在 debian 服务器上运行它,所以在 mac 或 windows 服务器上运行的任何东西都是不可能的。

0 投票
6 回答
19641 浏览

c++ - 哪种持续集成工具最适合 C++ 项目?

Cruisecontrol 和 Hudson 是两个流行的持续集成系统。尽管这两个系统都能够很好地进行自动连续构建,但创建批处理或 bash 构建脚本,然后使用 Windows 调度程序或 cron 来安排构建似乎要容易得多。

是否有更好的 C++ 项目可用的持续集成系统?或者只是使用脚本和调度程序更简单?

0 投票
2 回答
769 浏览

tdd - 在持续集成中如何处理 TDD?

想象一下,您正在实现包含各种新功能并增加代码库复杂性的用户故事。现有代码已经很好地覆盖了,您刚刚决定了接口。您开始实现从测试开始的功能。

现在,您有基于需求的相当复杂的测试用例,但是当您能够提交 SCM 完全工作的代码并且许多测试失败(应该如此)时,实现还远远不够。

假设在持续集成中,如果可能,所有构建都应该是绿色的,因此您不应该提交,因为您会破坏构建。但是你也不应该“变暗”并为自己保留这么多的代码......

在这种情况下建议的程序是什么?

0 投票
2 回答
1265 浏览

svn - 将 SVN 1.4 升级到 1.5.3 和 CC.Net 从 1.3 升级到 1.4

我认为这是一个多部分的问题,所以请耐心等待。

目前我们所有的开发人员都使用为 SVN 1.4 构建的 Tortise 版本,我们的 SVN 服务器运行的是 1.4。我们的构建服务器正在运行 CC.Net 并使用 SVN 1.4。

我们想升级。

我已经确定将我们的客户端升级到 1.5,然后我们的服务器升级到 1.5 将为我们工作。但是,问题来自 CC.Net。我们可以将构建服务器上的 SVN 安装升级到 SVN 1.5 吗?还是我们也必须升级 CC.Net 的安装?我们也想利用这段时间升级 CC.Net,但是,我们想确保先完成 SVN 升级,然后再回来做 CC.Net。

此外,由于我们在这些项目中使用的 nAnt 脚本,在我们的一些项目中,我们维护了一个“工具”文件夹,该文件夹可能包含也可能不包含 SVN 的二进制文件。我假设如果我们将 SVN 的 CC.Net 服务器安装升级到 1.5,我们还需要更新所有这些项目,因为 CI 服务器使用与执行的 nAnt 脚本相同的工作目录。

清如泥?

0 投票
3 回答
5279 浏览

eclipse - 如何在 Eclipse 项目中使用持续集成?

我一直在使用 maven2 和 hudson 进行持续集成,但我发现 Eclipse 和 Maven 不能很好地配合使用。当然有一个插件,但是将 maven 项目混搭成 eclipse 喜欢的东西,构建时间和单元测试太长了。我正在考虑切换回一个没有 ant 和 maven 的纯 Eclipse 项目。使用无限的插件和可能的 JavaRebel 代理,它会给我一个非常快速的构建-部署-测试周期。但是我仍然希望有自动和测试,所以:

如何在 Eclipse 项目中使用持续集成?

有命令行方法吗?

是否有本地已经支持它的构建服务器?

0 投票
3 回答
717 浏览

windows - 阻止 MSVC++ 调试错误阻止当前进程?

Windows 上任何失败的 ASSERT 语句都会导致出现以下调试消息并冻结应用程序执行。我意识到这是预期的行为,但它会在无头机器上定期运行,因此可以防止单元测试失败,而是无限期地等待用户输入。

是否有一个注册表项或编译器标志可以用来阻止此消息框请求用户输入,同时仍然允许测试在 ASSERT 下失败?

基本上,我想在不修改任何代码的情况下执行此操作,只需更改编译器或 Windows 选项。

谢谢!

Microsoft Visual C++ 调试库断言 http://img519.imageshack.us/img519/853/snapshotbu1.png

0 投票
11 回答
1096 浏览

continuous-integration - 每日构建与零缺陷

您如何进行日常构建并努力实现零缺陷环境?这是否意味着在我杀死新代码中的所有错误之前,我永远无法回家?或者这是否意味着在我完全测试完代码之前我不会重新检查我的代码,这会使代码有效地分支更长的时间?

我是第一次与少数程序员一起工作(而不是独自工作,或者只与其他编码员一起工作),所以我只是第一次为这样的决定而苦苦挣扎。我们应该采用软件开发流程吗?

0 投票
8 回答
8931 浏览

continuous-integration - 将虚拟机映像创建为持续集成工件?

我目前正在开发一种服务器端产品,该产品在新服务器上部署有点复杂,这使其成为在 VM 中进行测试的理想候选者。我们已经在使用 Hudson 作为我们的 CI 系统,我真的很希望能够使用最新最好的软件部署一个虚拟机映像作为构建工件。

那么,究竟是如何做到这一点的呢?为此建议使用什么 VM 软件?需要编写多少脚本才能完成此任务?在这里使用 Windows 2003 Server 作为操作系统时有什么问题吗?

0 投票
7 回答
858 浏览

performance - 如何快速保持自动化测试?

自动化测试必须快速反映实时项目状态。这个想法是:

  1. 在执行任何对存储库自动构建的提交之后(尽可能快地完成)。
  2. 如果构建成功自动测试开始。必须快。

这是我知道的最好的方法来确定你的更改是否会破坏任何东西。

起初,快速构建似乎很难,但我们设法将其保持在 100 秒左右。用于 105(!) 个项目的解决方案 (MSVS 2008 C#)。

测试似乎没有那么简单(我们使用 NUnit FW)。单元测试不是一个大问题。是集成测试杀死了我们。而不是它们更慢的事实(任何关于如何使它们更快的想法都非常感谢),而是必须设置的环境要慢得多(atm ~1000 秒)!

我们的集成测试使用需要重新部署的 web/win 服务(目前有 19 个)以反映最新的变化。这包括重新启动服务和大量 HDD R/W 活动。

任何人都可以分享如何组织/优化环境和工作流程以加快自动化测试阶段的经验。什么是“低级”瓶颈和解决方法。

欢迎 PS 书籍和广泛的文章,但更赞赏现实世界的工作解决方案。