Closed 。这个问题需要多问focused /help/closed-questions 。目前不接受答案。
我正在与一个小型(4 人)开发团队合作开发一个 C# 项目。我建议设置一台构建机器来进行项目的夜间构建和测试,因为我知道这是一件好事。问题是,我们这里没有太多预算,所以我必须向当权者证明这笔开支是合理的。所以我想知道:
我需要什么样的工具/许可证?现在,我们使用 Visual Studio 和 Smart Assembly 进行构建,并使用 Perforce 进行源代码控制。我还需要其他东西吗,或者是否有相当于 cron 作业的东西来运行自动化脚本?
除了表明构建已损坏之外,这到底会给我带来什么?我是否应该在此解决方案(sln 文件)中设置将由这些脚本运行的测试项目,以便我可以测试特定的功能?目前,我们有两个这样的测试,因为我们没有时间(或者坦率地说,没有经验)来进行良好的单元测试。
为此我需要什么样的硬件?
一旦构建完成并经过测试,通常的做法是将其构建到 ftp 站点上还是通过其他方式进行内部访问?这个想法是这台机器使the 构建,我们都会进行它,但如果需要的话可以进行调试构建。
我们应该多久进行一次这种构建?
空间如何管理?如果我们每晚进行构建,我们应该保留所有旧的构建,还是在大约一周左右开始抛弃它们?
还有什么我在这里没有看到的吗?
我意识到这是一个非常大的话题,而我才刚刚开始。我在这里找不到这个问题的重复项,如果我应该得到一本书,请告诉我。
编辑:我终于开始工作了! Hudson 非常棒,FxCop 表明我们认为已实现的一些功能实际上并不完整。我们还必须将安装程序类型从 Old-And-Busted vdproj 更改为 New Hotness WiX。
基本上,对于那些关注的人来说,如果您可以从命令行运行构建,那么您可以将其放入 hudson。通过 MSBuild 从命令行运行构建本身就是一项有用的练习,因为它迫使您的工具保持最新状态。
Update: Jenkins http://jenkins-ci.org/ 是 Hudson 的最新版本。现在每个人都应该使用 Jenkins。我将相应地更新链接。
Hudson https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins 是免费的,并且非常容易配置,并且可以轻松地在虚拟机上运行。
部分来自我的旧帖子:
我们用它来
部署Windows服务
部署网络服务
运行 MSTests 并显示与任何 junit 测试一样多的信息
跟踪低、中、高任务
趋势图警告和错误
以下是 Hudson 支持的一些内置 .net 内容
MSBuild https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin
NAnt https://wiki.jenkins-ci.org/display/JENKINS/NAnt+Plugin
MSTest https://stackoverflow.com/questions/352703/integrating-hudson-with-ms-test/512092#512092
Nunit https://wiki.jenkins-ci.org/display/JENKINS/NUnit+Plugin
团队基础服务器 https://wiki.jenkins-ci.org/display/JENKINS/Team+Foundation+Server+Plugin
fxcop https://wiki.jenkins-ci.org/display/JENKINS/Violations
stylecop https://wiki.jenkins-ci.org/display/JENKINS/Violations
编译器警告 https://wiki.jenkins-ci.org/display/JENKINS/Warnings+Plugin
代码任务 https://wiki.jenkins-ci.org/display/JENKINS/Task+Scanner+Plugin
另外,上帝禁止你使用安全的视觉源,它也支持这一点 https://wiki.jenkins-ci.org/display/JENKINS/Visual+SourceSafe+Plugin 。我建议你看一下Redsolo 关于使用 Hudson 构建 .net 项目的文章 http://redsolo.blogspot.com/2008/04/guide-to-building-net-projects-using.html
你的问题
Q :我需要什么样的工具/许可证?现在,我们使用 Visual Studio 和 Smart Assembly 进行构建,并使用 Perforce 进行源代码控制。我还需要其他东西吗,或者是否有相当于 cron 作业的东西来运行自动化脚本?
A: 我刚刚在 VM 的新副本上安装了 Visual Studio,该 VM 运行全新的、已修补的 Windows 服务器操作系统安装。所以你需要许可证来处理这个问题。 Hudson 会将其自身安装为 Windows 服务并在端口 8080 上运行,您将配置希望它扫描代码存储库以获取更新代码的频率,或者您可以告诉它在特定时间进行构建。全部可通过浏览器进行配置。
Q: 除了表明构建已损坏之外,这到底会给我带来什么?我是否应该在此解决方案(sln 文件)中设置将由这些脚本运行的测试项目,以便我可以测试特定的功能?目前,我们有两个这样的测试,因为我们没有时间(或者坦率地说,没有经验)来进行良好的单元测试。
A: 第一次构建失败或变得不稳定时,您将收到一封电子邮件。如果单元测试失败,则构建不稳定,或者可以通过您设置的任意数量的标准将其标记为不稳定。当单元测试或构建失败时,您将收到电子邮件,其中会告诉您失败的地点、原因和方式。根据我的配置,我们得到:
自上次工作构建以来的所有提交列表
这些提交的提交注释
提交中更改的文件列表
构建本身的控制台输出,显示错误或测试失败
Q: 为此我需要什么样的硬件?
A: 一个虚拟机就足够了
Q: 一旦构建完成并经过测试,通常的做法是将其构建到 ftp 站点上还是通过其他方式进行内部访问?我们的想法是,这台机器进行构建,我们都可以进行构建,但如果需要的话可以进行调试构建。
A: Hudson 可以用它做任何您想做的事情,包括通过 md5 哈希对其进行 ID 识别、上传、复制、存档等。它会自动执行此操作,并为您提供构建工件的长期运行历史记录。
Q: 我们应该多久进行一次这种构建?
A: 我们每小时轮询 SVN,寻找代码更改,然后运行构建。每晚还可以,但在我看来有点毫无价值,因为当你早上上班时,你昨天所做的事情不会在你的脑海中记忆犹新。
Q: 空间如何管理?如果我们每晚进行构建,我们应该保留所有旧的构建,还是在大约一周左右开始抛弃它们?
A: 这取决于你,经过这么长时间,我将构建工件移动到长期存储或删除它们,但是存储在我保留的文本文件/xml 文件中的所有数据,这让我可以将更改日志、趋势图等存储在服务器占用的空间非常小。您还可以将 Hudson 设置为仅保留尾随构建中的工件
Q: 还有什么我在这里没有看到的吗?
A: 不,现在就去找 Hudson,你不会失望的!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)