如何让grunt.js启动一个快速应用程序进行测试

Kri*_*son 8 unit-testing node.js gruntjs

我目前的情况是我使用grunt制作我的快递应用程序的生产版本(最小化并合并所有js/css,复制所有文件到位)然后我必须运行一个设置环境变量的脚本(我的应用程序)仅用于在测试模式下运行时,测试工具),创建一个空的Mongo的测试数据库,然后调用的应用程序目录NPM启动,然后我手动不得不从Chrome浏览或虚拟运行测试,我想要做的是有grunt设置环境变量并运行服务器,运行测试,然后停止服务器(将来如果一切都成功,那么部署它也会很好).但是,当我尝试在grunt中运行应用程序时,它会在完成后立即停止.

如何让grunt启动应用程序,等到它启动然后运行测试?

use*_*109 11

如果你通过grunt 检查grunt-express这是一个用于快速web服务器任务的插件.

快车存活

请注意,只要grunt正在运行,此服务器就会运行.一旦grunt的任务完成,Web服务器就会停止.可以通过在任务列表的末尾添加express-keepalive任务来更改此行为

grunt.registerTask('myServer', ['express', 'express-keepalive']);
现在,当您运行grunt myServer时,您的快速服务器将保持活动状态,直到您手动终止它.

也可以通过运行任务来临时启用此功能grunt express express-keepalive.

这种设计使您可以灵活地将grunt-express与之后立即运行的另一个任务结合使用,例如grunt-contrib-qunit插件qunit任务.如果我们强制表达任务总是异步,那么这种用例就不再发生了.

从指南grunt-contrib-qunit包中用于在无头PhantomJS实例中运行QUnit单元测试.还要记住最后一行,如果强制表达总是异步,那就没用了.

NPM 链接grunt-express.