我已经在互联网上寻找对我想要做的事情的描述,但无济于事。我希望通过从本地主机加载PhantomJS来为我正在构建直接在生产代码上运行的Web构建单元测试。我想在加载真实网站并与dom交互以测试所有内容之后运行一个贯穿我的规范的Grunt任务。我几乎就在那里,但实际上我无法加载页面。
如果我将主机项添加到我的gruntfile中的jasmine选项中,如下所示:
options: {
specs: 'spec/*Spec.js',
helpers: 'spec/*Helper.js',
vendor: ['app/assets/javascripts/src/libs/jquery-1.9.1.min.js', 'app/assets/javascripts/src/libs/underscore.js'],
template: require('grunt-template-jasmine-requirejs'),
host: "http://localhost:3000"
}
我每次都会收到超时错误。在Grunt上下文中没有人真正解决过这个问题,所以我不确定故事是什么,我没有运行异步测试。如果我离开主机,它会成功运行测试,但仅通过本地文件系统的原始javascript文件,而不是通过本地网络。如何配置模板以允许Jasmine测试在不同的主机上运行?
更新:
实际上,看起来Grunt实际上并没有针对本地服务器进行轮询,它只是挂起并超时。
答案 0 :(得分:6)
在您的配置中指定:
grunt.initConfig({
connect: {
server: {
options: {
port: 3000
}
}
}
});
添加到别名任务:
grunt.registerTask("default", ["connect", "your-jasmine-task"]);
并运行它:
$ grunt default