在本地计算机上使用Javascript进行无痛开发的最佳方法

时间:2010-08-31 23:30:33

标签: javascript unit-testing testing

我很高兴与Javascript合作。

在大多数语言中,您可以在计算机上本地快速运行代码。从我所看到的,在JS中你通常只能通过浏览器使用它,所以我一直在上传我的代码,在浏览器中查看它的效果。事实证明这非常令人厌烦。此外,如果我犯了一个错误,似乎我的JS / JQuery只会做什么,而不是给我一个有用的错误,消息,这使得编写代码变得非常缓慢。

有没有办法在本地运行JS,看看它是否正常工作?我大部分时间只将它上传到网上?我有什么方法可以做到这一点?有什么方法让我在本地对Javascript进行单元测试?假设我有一些应该呈现为<p>HI</p&gt;的JAML,如何在单元测试中本地运行?

感谢您的帮助, 亚历

编辑:

感谢所有伟大的建议。我将不得不花点时间仔细阅读一下,看看在我的情况下哪些最能帮助我。

10 个答案:

答案 0 :(得分:6)

由于您使用的是jQuery,我认为您实际上想要操纵页面上的各种元素。因此,根据您的具体开发环境,每次上传都可能是最佳选择。如果您可以在本地计算机上设置开发环境(并非总是可行),那么请继续使用。

作为您问题的实际答案,我建议使用Chrome的开发者工具,它不仅包含控制台,还包含元素检查器和资源跟踪器(资源跟踪器在使用JSON和AJAX时非常有用,因为无效json会默默地失败)

据我所知,firefox的firebug插件(不要自己使用)有一个类似的功能集,所以如果你对它感觉更舒服的话。

请记住,作为开发人员,您的开发(和调试)环境与您编写的代码一样重要。

编辑:注意到您提到了单元测试。 JS有几个单元测试框架,包括一个与名为FireUnit的firebug集成的框架。如果您愿意,可以快速搜索谷歌搜索。

答案 1 :(得分:6)

您无需将JS文件上传到服务器进行测试。只需编写一个html并声明js绑定

<script
            src="js/yourJSFile.js"
            type="text/javascript"></script>

在您喜欢的编辑器中编辑JS文件,然后刷新页面进行测试。

对于单元测试,最佳选择是Selenium。它允许您记录与浏览器的交互,然后播放。

答案 2 :(得分:4)

您可以使用Firefox Firebug来调试JS,而Google Chrome内置调试器(使用工具 - >开发人员工具菜单)。

答案 3 :(得分:1)

您可以在浏览器中从计算机上的本地文件运行Javascript,这样您就可以跳过上传步骤。

另外,我建议使用Firefox / Firebug组合来开发Javascript,因为它非常方便,特别是对于你提到的没有看到你的代码出了什么问题的部分。

答案 4 :(得分:1)

即使您上传了javascript,只要您访问其中包含该内容的网页,它就会立即下载给您。它总是运行客户端。所以坚持当地并使用其他人说过的萤火虫。谷歌的开发者工具也很不错。

答案 5 :(得分:1)

如果您打开开发人员工具,请在浏览器中执行以下步骤:

1)导航到来源

2)在来源下,点击代码段并打开run.js

3)您可以使用run.js编写任意数量的代码并在本地运行它,以查看您的代码是否正常工作(它将在控制台上为您提供输出)

4)你也可以习惯一些键盘快捷键,让它更快。

5)对于小的JavaScript代码,您可以导航到控制台并在那里运行代码

答案 6 :(得分:0)

如果您想使用Javascript进行单元测试,可以使用Firebug的扩展程序来帮助您。我没有尝试过任何一个,所以我无法告诉你哪一个值得考虑,但如果你在Google上搜索关键字"Firebug unit testing",你就可以轻松找到它们。

似乎最重要的是FireUnit。您可以找到有关其工作原理的一些信息here

答案 7 :(得分:0)

考虑Spider Monkey,它是一个独立于浏览器的JavaScript引擎。如果您正在开发的内容不涉及渲染到网页或者可以与渲染代码分离(良好实践!),那么这可能很有用。

答案 8 :(得分:0)

我更喜欢Chrome到Firefox,而我刚发现Web Server for Chrome

它只是一个Google应用程序,可以为您快速设置Web服务器,并且可以在您登录Chrome的任何位置进行设置。它只允许文件访问当前设备,或者如果您指定,则只允许在当前LAN上访问其他设备。

您只需将其指向包含index.html文件的目录,然后在浏览器中输入http://127.0.0.1:8887即可。

答案 9 :(得分:0)

除了给出的答案,您还可以使用 Jasmine 进行自动化测试。


Evan Hahn提供的 tutorial 似乎有助于开始对Jasmine进行自动化测试。
我用它,对我来说它就像一个魅力。特别是如果测试驱动开发是您的目标!