我正在尝试让 Phantom.js 运行一套用 Jasmine 编写的 JavaScript 测试。以下是重现我正在做的事情的步骤:
获取 latest standalone release最新版本的 Jasmine 框架(一个 zip 存档)
存档包含几个 javascript 文件的示例规范和可以在浏览器中运行这些规范的
SpecRunner.html
文件安装 phantom.js 并下载 jasmine 2 runner来自 phantom.js 项目的示例文件夹
尝试使用 phantom.js 运行
SpecRunner.html
:phantomjs ./phantom/run-jasmine2.js ./jasmine/SpecRunner.html
(其中 ./phantom/run-jasmine2.js
是 phantom.js 的 jasmine2 runner 的路径,./jasmine/SpecRunner.html
是 jasmine 文件夹中带有示例规范的规范运行程序的路径)
我收到以下错误
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 runner 文件吗?如果可能的话,也没有业力。
最佳答案
这里有一个很好的例子 Karma, PhantomJS, Jasmine setup您可以使用更多关于 Karma 的文档,请访问 https://karma-runner.github.io .
关于javascript - 在没有服务器的情况下在 Phantom.js 中运行 Jasmine 测试套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948871/