Meteor-Community-Packages / meteor-browser-tests

A helper package for Meteor test driver packages. Runs client tests in a headless browser.
MIT License
12 stars 21 forks source link

node processes are not ended correctly for nightmare #6

Open scharf opened 7 years ago

scharf commented 7 years ago

When I use nightmare (with dispatch:mocha) on my system (MacOS 10.12.4) in watch mode, there are lots of processes created.

This is how I start my tests:

TEST_BROWSER_DRIVER=nightmare meteor test --driver-package dispatch:mocha --port 3100

The first run starts an electron process first-run The second run starts a new one, but the forked node does not die:

second_run

With phantom, the forked node process dies when phantom dies.

Each time, electron is started a new node subprocess is forked which runs electron. When electron terminates, the node subprocess does not die. Over time, this adds a lot of pressure to the system.

This does not happen with phantomjs, therefore I assume that it may be a problem with this package.

aldeed commented 7 years ago

@scharf The nightmare file is here: https://github.com/aldeed/meteor-browser-tests/blob/master/browser/nightmare.js

If you clone this repo into a folder in /packages folder in your app, then you can add logging to see if nightmare.end() is called. Notice also on line 18 where it should be calling it on exit.

So the questions are: if it's not being called for your app, why not? If it is called, then why does the process not actually exit?