我需要在沒有互聯網訪問的持續集成服務器上使用PhantomJS運行Karma測試。每次構建運行npm install --no-registry
然後grunt
咕嚕噶配置爲單次運行(singleRun: true
)Karma + PhantomJS + no internet access
一切運作良好,除了PhantomJS開始。儘管phantomjs軟件包在npm-cache中,但它試圖直接從bitbucket.org下載實際的二進制文件(在我的情況下爲.exe),並且由於沒有inet訪問而顯然失敗。
我試圖預先安裝全球PhantomJS軟件包(npm install -g phantomjs
)。現在二進制文件在離線模式下解析,測試運行通過並且通過,一切看起來都很好,但是... Karma測試套件現在永遠不會結束(大概是由於PhantomJS從不退出),直到我點擊了Ctrl + C。 (它只發生在我明確地安裝PhantomJS軟件包與npm install -g ...
。如果我不這樣做,並讓它從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:
> npm install -g phantomjs
Done. Phantomjs binary available at .....
[email protected] 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測試的正確方法?
謝謝!