我经常看到带有构建状态通知(like here)的github js存储库。如果它是像javac++这样的已编译项目,那将是有道理的,但是它是JavaScript语言,可能发生的更糟的事情是抛出异常。

在解释的语言环境中,构建状态意味着什么?

最佳答案

可以在服务器(nodejs)或浏览器上使用JavaScript。总体而言,无论哪种方式,构建状态都表明您的软件(在这种情况下为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-used

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

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

我认为了解更多信息的一种好方法是阅读文档。也许Google也可以找到有关此主题的其他人的著作。最好的学习方法是卷起袖子并尝试一下。

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

更新2:


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


是的,这就是重点。如果您按照文档中他们的指示进行操作并创建帐户,我相信您会找到所有问题的答案。

使用TravisCI进行注册时,虚拟机将可用,并与您的github存储库连接/同步。如果在.yml文件中选择NodeJS作为语言,则VM将安装NodeJS。

如果您添加的script:密钥的值为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将是一个伟大的第一步。

08-27 21:24