我经常看到带有构建状态通知的github js repos(like here)。如果它是一个像java
或c++
这样的编译项目会有意义,但它是javascript,更糟糕的是可能发生的事情是抛出异常。
构建状态在解释语言环境中意味着什么?
答案 0 :(得分:3)
可以在服务器( nodejs )或浏览器上使用JavaScript。无论哪种方式,一般而言,构建状态指示您的软件(在这种情况下为javascript)是否已通过了为使您的软件按预期工作所需的构建测试。
TravisCI是处理运行开发人员预先设置的测试的软件:http://about.travis-ci.org/docs/user/getting-started/。 TravisCI免费集成到GitHub ......这是一项免费服务。
它的工作方式是在repo的根目录中设置一个名为.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:
的{{1}}键,则会执行此脚本。如果你知道如何在shell中开发,那么你可以做各种测试和惊人的事情。正如我所说,你可以通过Linter,验证器运行你的文件,或者你可以在无头浏览器(PhantomJS)中运行一些其他JS文件。以幻像运行的JS文件可以是单元测试本身。以下是它的完成方式:{{3}}
有关单元测试的更多信息:http://about.travis-ci.org/docs/user/gui-and-headless-browsers/ - 请阅读有关使用shell script (.sh)
的部分。
如果你想了解TravisCI如何完成所有这些事情,那么学习Ruby将是一个很好的第一步。
答案 1 :(得分:0)
任何项目都可以有一个构建阶段,即使这只是意味着您将JavaScript压缩为缩小版本或构建文档或类似的此类任务。 “无构建”项目的大部分时间意味着一套测试会自动针对最新版本运行。