我经常看到带有构建状态通知的 github js repos(比如这里)。java
如果它是一个编译的项目,例如或者但它是 javascript,那将是有意义c++
的,可能发生的更糟糕的事情是抛出异常。
在解释语言上下文中构建状态意味着什么?
我经常看到带有构建状态通知的 github js repos(比如这里)。java
如果它是一个编译的项目,例如或者但它是 javascript,那将是有意义c++
的,可能发生的更糟糕的事情是抛出异常。
在解释语言上下文中构建状态意味着什么?
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/。
例如,可以运行 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 将是一个很好的第一步。
任何项目都可以有一个构建阶段,即使这只是意味着您将 JavaScript 压缩为缩小版本或构建文档或类似的任务。大多数情况下,对于“无构建”项目,这意味着会自动针对最新版本运行一套测试。