Karma Unit テストをリモート Jenkins サーバーで実行しようとしています。この Jenkins サーバーは Linux で実行されており、PhantomJS の古いバージョンが既にインストールされており、PHANTOMJS_BIN が env で定義されています。カルマ テストを実行するために、gulp-karma および karma-phantomjs-launcher-nonet パッケージを使用しています。
ただし、jenkins が Karma を起動すると、PhantomJS を生成できないようです。次のエラーが表示されます。
[13:33:00] Karma サーバーを起動しています... [32mINFO [karma]: [39mKarma v0.12.37 サーバーがhttp://localhost:9876/で起動しました][32mINFO [launcher]: [39mStarting browser PhantomJS [31mERROR [karma]: [39m{ [Error: spawn EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'spawn' } Error: spawn EACCES at exports. Object._execCommand (/appl/jenkins/workspace/) で exports.spawn (child_process.js:339:9) で ChildProcess.spawn (internal/child_process.js:298:11) で _errnoException (util.js:874:11) ps-lib/node_modules/karma/lib/launchers/process.js:63:21) Object._start (/appl/jenkins/workspace/ps-lib/node_modules/karma-phantomjs-launcher-nonet/index.js: 40:10) オブジェクトで。Object.emit (events.js:169: 7) Object.start (/appl/jenkins/workspace/ps-lib/node_modules/karma/lib/launchers/base.js:40: 10) /appl/jenkins/workspace/ps-lib/node_modules/karma/lib/launcher.js:88:15 at Array.forEach (ネイティブ) at [object Object].launch (/appl/jenkins/workspace/ps -lib/node_modules/karma/lib/launcher.js:40:11) [オブジェクト オブジェクト].invoke (/appl/jenkins/workspace/ps-lib/node_modules/karma/node_modules/di/lib/injector.js: 75:15) サーバーで。(/appl/jenkins/workspace/ps-lib/node_modules/karma/lib/server.js:62:18)、Server.g (events.js:260:16)、emitNone (events.js:72:20) Server.emit (events.js:166:7) で emitListeningNT (net.js:1260:10) で doNTCallback1 (node.js:430:9) で process._tickCallback (node.js:352:17) サーバーで (/appl/jenkins/workspace/ps-lib/node_modules/karma/node_modules/di/lib/injector.js:75:15) を呼び出します。(/appl/jenkins/workspace/ps-lib/node_modules/karma/lib/server.js:62:18)、Server.g (events.js:260:16)、emitNone (events.js:72:20) Server.emit (events.js:166:7) で emitListeningNT (net.js:1260:10) で doNTCallback1 (node.js:430:9) で process._tickCallback (node.js:352:17) サーバーで (/appl/jenkins/workspace/ps-lib/node_modules/karma/node_modules/di/lib/injector.js:75:15) を呼び出します。(/appl/jenkins/workspace/ps-lib/node_modules/karma/lib/server.js:62:18)、Server.g (events.js:260:16)、emitNone (events.js:72:20) Server.emit (events.js:166:7) で emitListeningNT (net.js:1260:10) で doNTCallback1 (node.js:430:9) で process._tickCallback (node.js:352:17)
/appl/jenkins/workspace/ps-lib/tasks/test.js:15 エラーをスローします。^ エラー: カルマはコード 1 で終了しました (/appl/jenkins/workspace/ps-lib/node_modules/gulp-karma/index.js:56:30) at ChildProcess. (/appl/jenkins/workspace/ps-lib/node_modules/gulp-karma/index.js:82:7) emitTwo (events.js:87:13) で ChildProcess.emit (events.js:172:7) Process.ChildProcess._handle.onexit で (内部/child_process.js:200:12)
認証上の理由により、私のカルマは PhantomJS を実行できないように思えますが、そうですか? それでも、phantomjs のインストールはユーザー jenkins//jenkins で行われるため、jenkins はそれを実行できるはずですよね?