在没有服务器的情况下在Phantom.js中运行Jasmine测试套件

时间:2016-04-29 23:16:36

标签: javascript jasmine phantomjs

我正在尝试让Phantom.js运行一套用Jasmine编写的JavaScript测试。以下是重现我正在做的事情的步骤:

  • 获取最新版Jasmine框架的latest standalone release(zip存档)

  • 存档包含几个javascript文件的示例规范以及可以在浏览器中运行这些规范的SpecRunner.html文件

  • 安装phantom.js并从phantom.js项目的示例文件夹下载jasmine 2 runner

  • 尝试使用phantom.js运行SpecRunner.html

    phantomjs ./phantom/run-jasmine2.js ./jasmine/SpecRunner.html

(其中./phantom/run-jasmine2.js是phantom.js的jasmine2 runner的路径,./jasmine/SpecRunner.html是规范运行器的路径,其中包含jasmine文件夹中的示例规范) < / p>

我收到以下错误

TypeError: null is not an object (evaluating 'document.body.querySelector('.description').innerText')

Blocked a frame with origin "file://" from accessing a frame with origin "null".  The frame requesting access has a protocol of "file", the frame being accessed has a protocol of "about". Protocols must match.

因此,Phantom似乎不满意将规范转换器直接作为磁盘中的文件提供给它,而不是作为本地服务器(localhost:8080/SpecRunner.html)提供的文件。您是否可以建议一种方法让Phantom能够使用spec转轮文件而不需要启动服务器?如果可能的话,也没有业力。

1 个答案:

答案 0 :(得分:0)

这里有一个很好的例子,你可以使用Karma, PhantomJS, Jasmine setup,有关Karma的更多文档可以在https://karma-runner.github.io获得。