我正在尝试让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转轮文件而不需要启动服务器?如果可能的话,也没有业力。
答案 0 :(得分:0)
这里有一个很好的例子,你可以使用Karma, PhantomJS, Jasmine setup,有关Karma的更多文档可以在https://karma-runner.github.io获得。