0

我经常看到带有构建状态通知的 github js repos(比如这里)。java如果它是一个编译的项目,例如或者但它是 javascript,那将是有意义c++的,可能发生的更糟糕的事情是抛出异常。

在解释语言上下文中构建状态意味着什么?

4

2 回答 2

3

JavaScript 可以在服务器(nodejs)或浏览器上使用。无论哪种方式,一般来说,构建状态表明您的软件(在本例中为 javascript)是否已通过所需的构建测试,以便您的软件按预期工作。

TravisCI 是用于运行开发人员预先设置的测试的软件:http: //about.travis-ci.org/docs/user/getting-started/。TravisCI 已免费集成到 GitHub 中……它是一项免费服务。

它的工作方式是您在存储.travis.yml库的根目录中设置一个名为的配置文件,然后 TravisCI 将“构建”您的项目 - 这意味着它将运行您预先设置的测试......例如单元测试,检查您的代码适用于最新的 NodeJS 版本、jQuery 版本、检查依赖项以及对您的项目很重要的其他任务。

这些测试/检查可以并且将在每次新推送到您的存储库时运行,确保对代码的新更改没有破坏您项目的功能。当多个开发人员为一个项目编写代码时,这种自动化测试会非常有用。将 TravisCI 视为一个项目警察,当您的代码没有通过所需的测试并且没有所需的依赖项时,它会显式地使您的项目失败。尽管也可能有其他原因。

TravisCI 似乎(至少在我看来)在 JS 社区的大型项目中使用,但这并不意味着它也不能用于较小的项目。就我个人而言,我从未使用过这项服务——我只是知道它并睁大眼睛以防万一我需要它。希望这可以为您澄清一点。

更新: 当然,这也是一个测试。它使用提供的两个 NodeJS 版本(0.8 和 0.6)测试项目。

language: node_js
node_js:
  - 0.8
  - 0.6

TravisCI 文档直接引用:

“Node.js 项目指定需要使用 node_js 密钥对其进行测试的版本”。

您可以在此处找到特定的 NodeJS 详细信息:http: //about.travis-ci.org/docs/user/languages/javascript-with-nodejs/

一般配置细节在这里:http ://about.travis-ci.org/docs/user/build-configuration/#.travis.yml-file%3A-what-it-is-and-how-it-is -用过的

如果开发人员想要,他们可以添加更多测试或发生的事情会影响构建状态。这里有很多例子:http: //about.travis-ci.org/docs/user/build-configuration/

例如,可以运行 Shell 脚本,这些脚本可能通过 JSLint、JSHint、Google Closure Compiler 或其他任何方式运行您的 JS 文件。您还可以向此.travis.yml文件添加配置属性,该属性将在每次构建时向您发送一封电子邮件,或连接到他们的一个数据库 - mysql、mongodb 等。

我认为了解更多信息的好方法是阅读文档。也许谷歌也可以找到其他人关于这个主题的著作。不过,最好的学习方法是卷起袖子试一试。

不过老实说,这些事情中有一半也在我的脑海中,而且我从未将它用于我的任何小项目。希望它现在更有意义。

更新 2:

项目不需要测试才能进行测试吗?

是的,它确实如此,这就是重点。如果您按照他们在文档中的指示并创建一个帐户,我相信您会找到所有问题的答案。

注册 TravisCI 时,将有一个可用的 VM 并与您的 github 存储库连接/同步。如果在您的.yml文件中选择 NodeJS 作为语言,那么 VM 将安装 NodeJS。

如果您添加了script:一个值为 a 的键shell script (.sh),则此脚本将执行。如果你知道如何在 shell 中开发,那么你可以做各种各样的测试和令人惊奇的事情。正如我所说,您可以通过 Linter、验证器运行文件,也可以在无头浏览器 (PhantomJS) 中运行其他一些 JS 文件。在幻像中运行的 JS 文件本身可以是单元测试。这是如何完成的: http: //about.travis-ci.org/docs/user/gui-and-headless-browsers/

有关单元测试的更多信息:http: //about.travis-ci.org/docs/user/languages/javascript-with-nodejs/#Default-Test-Script - 只需阅读有关使用Using Vows.

如果你想确切地了解 TravisCI 是如何做所有这些事情的,那么学习 Ruby 将是一个很好的第一步。

于 2013-01-30T02:27:00.293 回答
0

任何项目都可以有一个构建阶段,即使这只是意味着您将 JavaScript 压缩为缩小版本或构建文档或类似的任务。大多数情况下,对于“无构建”项目,这意味着会自动针对最新版本运行一套测试。

于 2013-01-30T01:48:44.243 回答