问题标签 [build-automation]

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 投票
8 回答
193 浏览

testing - 检测不会失败的测试的自动化方法,通过最小代码覆盖率签入?

我有一个开发人员,它将通过编写永不失败的测试来绕过我们的代码覆盖率。

代码很糟糕,但测试永远不会捕捉到它,因为它们断言(真)。

我进行代码审查,但我不能一直为每个人工作。你如何让这样的人有动力去开发好的软件?

是否有用于检测不会失败的测试的构建插件?

C#,mbUnit 测试。

0 投票
6 回答
390 浏览

build-process - 在自动构建中生成文档

有没有办法在自动构建期间生成项目文档?

我想要一组带有用户手册的源文件(HTML?),并从中生成:

  • PDF文件
  • CHM 帮助
  • HTML 版本的帮助

三种格式的内容基本相同。

目前我正在使用 msbuild 和 CCNET,但如果需要,我可以更改它。

0 投票
5 回答
8887 浏览

java - 您如何解决 Hudson 中的“打开文件过多”问题?

我们使用Hudson作为持续集成系统来执行我们许多项目的自动构建(每晚并基于 CVS 轮询)。

有些项目每 15 分钟轮询一次 CVS,有些项目每 5 分钟轮询一次,有些则每小时轮询一次。

每隔几周,我们就会得到一个失败的构建,输出如下:

下一个构建始终有效(有 0 次更改),因此我们总是将其归结为同时运行 2 个构建作业,并且在此过程中碰巧打开了太多文件。

这个周末我们在周五晚上构建失败(自动夜间构建)并显示消息,并且每隔一个夜间构建也失败。不知何故,这促使 Hudson 不断构建每个失败的项目,直到问题得到解决。这导致每个项目每 30 分钟左右构建一次,直到周六晚上某个时候问题神奇地消失了。

0 投票
9 回答
1041 浏览

version-control - 如何对构建工具和库进行版本控制?

在源代码控制系统本身中包含编译器、库和其他工具有哪些建议?

过去,我遇到过这样的问题:尽管我们拥有所有源代码,但构建产品的旧版本是一种急于尝试获得 Visual Studio、InstallShield 和其他工具(包括正确的补丁版本)用于构建产品。在我的下一个项目中,我想通过将这些构建工具检查到源代码控制中来避免这种情况,然后使用它们进行构建。这也将在设置新的构建机器方面简化事情——1)安装我们的源代码控制工具,2)指向正确的分支,3)构建——就是这样。

我考虑过的选项包括:

  • 将安装 CD ISO 复制到源代码控制 - 虽然这提供了我们需要返回到旧版本时所需的备份,但这不是“实时”使用的好选择(每个构建都需要从安装步骤开始,这很容易将 1 小时的构建时间变成 3 小时)。
  • 将软件安装到源代码控制。ClearCase 将您的分支映射到驱动器号;我们可以在这个驱动器下安装软件。这不考虑安装工具的非文件部分,如注册表设置。
  • 在虚拟机中安装所有软件并设置构建过程,将虚拟机存储在源代码管理中,并弄清楚如何让虚拟机在启动时进行构建。虽然我们轻松地捕获了“构建机器”的状态,但我们得到了 VM 的开销,并且它无助于“为开发人员提供相同的工具问题”。

这似乎是配置管理的一个基本概念,但我一直无法找到任何资源来了解如何做到这一点。有什么建议?

0 投票
6 回答
4427 浏览

firefox - 你如何签署你的 Firefox 扩展?

我已经为 Firefox 开发了几个扩展,但我很生气,很难让扩展签名。当扩展程序未签名时,它会在安装时显示“作者未验证”,对我来说这看起来是错误的。

我有一个简单的构建脚本,可以从源代码构建我的 .xpi 文件,并且我有 PKZip 的许可副本(根据许多教程,它需要构建 Firefox 所需的签名 xpi 文件),但我还没有找到一种获得实际有效的免费/廉价证书的方法或一组可以解决问题的说明。

由于我的扩展是免费的,我不想花 400 美元购买商业证书,但我不介意花 50 美元左右来完成它。我同时拥有 Linux 和 Windows 机器,尽管我的构建脚本当前使用的是 Windows 并且使用起来最方便。

你是怎么解决这个问题的?在构建扩展时,我需要做什么来自动安全地签署我的扩展?

编辑:我很欣赏谷歌的点击,但他们提供的步骤在如何真正获得有效的证书方面还不够完整。我得到的感觉让我想起了这个经典:

替代文字

0 投票
6 回答
30002 浏览

batch-file - .cmd 和 .bat 文件将返回代码转换为错误消息

我正在尝试通过 .cmd 文件自动化我使用测试套件制作的程序。

我可以通过 %errorlevel% 获取我运行的程序的返回码。

我的程序对每种类型的错误都有一定的返回码。

例如:

1 - 表示因某某原因失败

2 - 表示因其他原因失败

...

echo FAILED:测试用例失败,错误级别:%errorlevel% >> TestSuite1Log.txt

相反,我想以某种方式说:

echo FAILED:测试用例失败,错误原因:lookupError(%errorlevel%) >> TestSuite1Log.txt

.bat 文件可以做到这一点吗?还是我必须转向像 python/perl 这样的脚本语言?

0 投票
6 回答
7641 浏览

msbuild - MSBuild 不获取被引用项目的引用

我刚才在使用 MSBuild 时遇到了一个奇怪的情况。有一个解决方案包含三个项目:LibX、LibY 和 Exe。Exe 引用了 LibX。LibX 又引用了 LibY,有一些内容文件,还引用了第三方库(安装在 GAC 和本地 lib 文件夹中的几个预构建程序集)。第三方库被标记为“复制本地”(“私有”)并出现在 LibX 项目的输出中,就像 LibY 的输出和 LibX 的内容文件一样。现在,Exe 项目的输出有 LibX 项目输出、LibX 项目的内容文件、LibY 项目输出(来自 LibX),但没有第三方库的程序集。

现在我通过直接在 Exe 项目中引用第三方库来解决这个问题,但我觉得这不是一个“正确”的解决方案。

以前有人遇到过这个问题吗?

0 投票
4 回答
2437 浏览

.net - 是否有显示所有属性名称/值的 NAnt 任务?

是否有一个 NAnt 任务会回显当前在构建期间设置的所有属性名称和值?可能相当于 Ant echoproperties任务的东西?

0 投票
3 回答
351 浏览

ruby - 有人用过瑞文吗?

你觉得这个构建工具怎么样?我正在考虑从 maven2 迁移到 raven(我的 pom 越来越大),但我想先听听一些意见。

谢谢!

@安德烈:

感谢您的写作,但我实际上是在寻找使用 raven 的真实体验。无论如何,没有人写的事实本身就是一个指标(似乎很少有人使用它)

0 投票
7 回答
428 浏览

.net - 是否有基于动态语言的 .NET 构建工具?

我可能很快就会在 .NET 中开始一个新项目,并且不希望使用基于 XML 的构建工具,例如 Nant 或 MSBuild。我喜欢 Rake,但我认为拥有基于 .NET 动态语言(例如 Boo)的东西可能会更好,在精神上类似于 gant 或 Java 的 BuildR。.NET 有这样的东西吗?如果没有,你有什么推荐的?