TeamCity: PhantomJS not captured in 60,000 ms, killing

I am encountering a problem while running tests in my CI environment. The configuration works fine on MacOS 10.11.6 (El Capitan), with Node v6.0.0 / npm 3.8.6, but on TeamCity 9.1.6, running on Windows with Node v4.2.2 / npm 2.14.7, it fails with PhantomJS have not captured in 60000 ms error PhantomJS have not captured in 60000 ms .

Here is an example stacktrace in TeamCity:

 [08:58:40][exec] 02 11 2016 08:58:41.095:DEBUG [config]: autoWatch set to false, because of singleRun [08:58:40][exec] 02 11 2016 08:58:41.102:DEBUG [plugin]: Loading plugin karma-jasmine. [08:58:40][exec] 02 11 2016 08:58:41.107:DEBUG [plugin]: Loading plugin karma-chrome-launcher. [08:58:40][exec] 02 11 2016 08:58:41.121:DEBUG [plugin]: Loading plugin karma-firefox-launcher. [08:58:40][exec] 02 11 2016 08:58:41.128:DEBUG [plugin]: Loading plugin karma-phantomjs-launcher. [08:58:40][exec] 02 11 2016 08:58:41.263:DEBUG [web-server]: Instantiating middleware [08:58:41][exec] 02 11 2016 08:58:41.595:INFO [karma]: Karma v1.3.0 server started at http://localhost:9877/ [08:58:41][exec] 02 11 2016 08:58:41.596:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency [08:58:41][exec] 02 11 2016 08:58:41.616:INFO [launcher]: Starting browser PhantomJS [08:58:41][exec] 02 11 2016 08:58:41.618:DEBUG [temp-dir]: Creating temp dir at E:\TCA\3\temp\buildTmp\karma-47802965 [08:58:41][exec] 02 11 2016 08:58:41.631:DEBUG [launcher]: E:\TCA\3\work\f900f2fe23d6c9b0\Preview\node_modules\phantomjs-prebuilt\lib\phantom\bin\phantomjs E:\TCA\3\temp\buildTmp\karma-47802965/capture.js [08:59:41][exec] 02 11 2016 08:59:41.621:WARN [launcher]: PhantomJS have not captured in 60000 ms, killing. [08:59:43][exec] 02 11 2016 08:59:43.624:WARN [launcher]: PhantomJS was not killed in 2000 ms, sending SIGKILL. [08:59:45][exec] 02 11 2016 08:59:45.627:WARN [launcher]: PhantomJS was not killed by SIGKILL in 2000 ms, continuing. [08:59:45][exec] 02 11 2016 08:59:45.628:DEBUG [launcher]: Process PhantomJS exited with code -1 [08:59:45][exec] 02 11 2016 08:59:45.629:DEBUG [temp-dir]: Cleaning temp dir E:\TCA\3\temp\buildTmp\karma-47802965 [08:59:45][exec] 02 11 2016 08:59:45.637:DEBUG [launcher]: PhantomJS failed (timeout). Not restarting. [08:59:45][exec] 02 11 2016 08:59:45.638:DEBUG [karma]: Run complete, exiting. [08:59:45][exec] 02 11 2016 08:59:45.639:DEBUG [launcher]: Disconnecting all browsers [08:59:45][exec] Warning: Task "karma:unit" failed. Use --force to continue. [08:59:45][exec] [08:59:45][exec] Aborted due to warnings. [08:59:45][exec] npm ERR! Test failed. See above for more details. 

Here is a fragment of package.json:

 "devDependencies": { "bower": "latest", "grunt": "^1.0.1", "grunt-cli": "^1.2.0", "grunt-contrib-jshint": "^1.0.0", "grunt-contrib-watch": "^1.0.0", "grunt-istanbul-coverage": "^0.1.4", "grunt-karma": "^2.0.0", "karma": "^1.3.0", "karma-chrome-launcher": "^2.0.0", "karma-cli": "^1.0.1", "karma-firefox-launcher": "^1.0.0", "karma-jasmine": "^1.0.2", "karma-phantomjs-launcher": "^1.0.2", "jasmine-core": "^2.5.2", "matchdep": "^1.0.1" }, "scripts": { "postinstall": "node ./node_modules/bower/bin/bower install", "test": "node ./node_modules/.bin/grunt default" } 

And here is a fragment of the karma.conf.js file:

 module.exports = function (config) { 'use strict'; config.set({ frameworks: ['jasmine'], plugins: [ 'karma-jasmine', 'karma-chrome-launcher', 'karma-firefox-launcher', 'karma-phantomjs-launcher' ], files: [ <...> ], exclude: [], preprocessors: { }, reporters: ['progress'] port: 9877, runnerPort: 9101, colors: true, logLevel: config.LOG_DEBUG, autoWatch: true, browsers: ['PhantomJS'], captureTimeout: 60000, singleRun: true }); 
+5
source share
3 answers

The problem is solved! In our CI environment, we don’t get node modules by running npm install - we will run the node_modules directory locally and add it to our source code.

Replacing on a Mac and hacking it on Windows and trying to use these modules, especially phantomjs-prebuilt , is the reason that it does not capture.

I fixed it from Windows and worked fine.

+3
source

I had a problem with PhantomJS have not captured in 60000 ms, killing locally, and after some experiments it turned out that this could be caused by:

  • Collision between PhantomJS accessible from classpath vs phatomjs-prebuilt loaded in node_modules project. I just deleted the globally available.
  • The PHANTOMJS_CDNURL environment variable is PHANTOMJS_CDNURL , pointing to the maven repository, check where to get PhantomJS .
+1
source

This is not how it should be done in order to do phantom affairs, as pastes are different.

Como resolvi: coloquei o executável na mesma pasta que aparece no log do Grunt e também atribui permissão de executeção.

Confirmation of the phantomjs esta command execution: no Linux is running o command missing terminal:

 which phantomjs 

resultado no meu pc: / usr / bin / phantomjs

esse caminho tem que ser mesma que aparece quando faz o Grunt:

 19 12 2018 11:42:39.587:INFO [launcher]: Starting browser PhantomJS 19 12 2018 11:42:39.588:DEBUG [temp-dir]: Creating temp dir at /tmp/karma-65103980 19 12 2018 11:42:39.591:DEBUG [launcher]: /usr/bin/phantomjs /tmp/karma-65103980/capture.js 
0
source

Source: https://habr.com/ru/post/1259161/


All Articles