【发布时间】:2014-02-24 04:03:51
【问题描述】:
我需要在没有 Internet 访问的持续集成服务器上使用 PhantomJS 运行 Karma 测试。每个构建都从运行npm install --no-registry 开始,然后运行grunt
Grunt Karma 配置为单次运行 (singleRun: true)
除了 PhantomJS 之外,一切都运行良好。即使 phantomjs 包位于 npm-cache 中,它也会尝试直接从 bitbucket.org 下载实际的二进制文件(在我的情况下为 .exe),但由于没有 inet 访问权限,显然会失败。
我尝试全局预安装 PhantomJS 包 (npm install -g phantomjs)。现在二进制文件在离线模式下解析,测试通过并通过,一切看起来都很好但是...... Karma 测试套件现在永远不会结束(可能是由于 PhantomJS 永远不会退出),直到我点击 Ctrl+C。 (只有在我使用 npm install -g ... 全局显式安装 PhantomJS 包时才会发生这种情况。如果我不这样做并让它自动从 BitBucket 下载它运行良好)。
两种情况下 PhantomJS 的版本都是一样的,我仔细检查了。
我尝试了不同版本的 PhantomJS(1.9.7、1.9.6、1.9.2)和 Karma(0.11、0.10)——没有区别。
这是我的 package.json:
"devDependencies": {
"grunt": "~0.4",
"karma": "~0.10",
"grunt-karma": "~0.6"
}
如果我运行带有“-g”的 PhantomJS 的 Karma,我会看到以下内容:
> npm install -g phantomjs
Done. Phantomjs binary available at .....
phantomjs@1.9.7-1 C:\Users\.....\npm\node_modules\phantomjs
> karma start --single-run
INFO [karma]: Karma v0.10.9 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9.7 (Windows 7)]: Connected on socket JjD-wPAWrUeuz1NBTw02
LOG: 'JQMIGRATE: Logging is active'
PhantomJS 1.9.7 (Windows 7): Executed 60 of 60 SUCCESS (0.362 secs / 0.204 secs)
WARN [launcher]: PhantomJS was not killed in 2000 ms, sending SIGKILL.
_
(并挂起...在继续 Ctrl+C 构建后)
我不明白为什么会这样。
问题
- 它与使用“-g”安装幻像包有什么关系?
- 配置没有互联网访问权限的环境以使用 PhantomJS 运行 Karma 测试的正确方法是什么?
谢谢!
【问题讨论】:
标签: gruntjs npm phantomjs offline karma-runner