expresso icon indicating copy to clipboard operation
expresso copied to clipboard

Fixes having to hit CTRL + C when doing serial tests with Socket.io

Open ignacioiglesias opened this issue 13 years ago • 10 comments

I was doing some tests using Socket.io and even though everything ran okay except that I had to manually exit Expresso using ctrl + c.

I tried using process.exit inside the else block but that would cause Expresso to output Failure: Only 1 of 3 suites have been started. Using a timeout seems to fix it despite the fact that I'm using 0 as time. Not really sure how this works, but it does :)

Edit: The first answer of "Why does setTimeout(fn, 0) sometimes help?" provides a good explanation.

BTW, this it my first push request, I hope it helps.

ignacioiglesias avatar Oct 29 '11 13:10 ignacioiglesias

Hi,

When do we think this pull request will be merged, as well as a release? Currently this bug is blocking me from using expresso in a CI because it locks the worker up. See http://travis-ci.org/#!/AutomatedTester/powerball-platform/builds as an example

AutomatedTester avatar Nov 10 '11 14:11 AutomatedTester

Like @AutomatedTester has said, this is a pretty annoying issue for us at travis-ci.org. Some otherwise good test suites may take up to 10-30 minutes (depending on the timeout value) to be killed after they get stuck because of this bug.

michaelklishin avatar Nov 10 '11 15:11 michaelklishin

Hey guys, just out of curiosity which versions of Node are you using?

ignacioiglesias avatar Nov 10 '11 23:11 ignacioiglesias

it's not really a bug, it's just an event-loop gotcha. It can only be "fixed" if we specify that each test is done and then exit manually. the successor to expresso does this

tj avatar Nov 10 '11 23:11 tj

Is that successor the beforeExit or next argument that is provided when using --serial?

ignacioiglesias avatar Nov 10 '11 23:11 ignacioiglesias

I am using Node 4.12 as that was the stable version up to a couple weeks ago.

On Thu, Nov 10, 2011 at 11:21 PM, Juan Ignacio Iglesias < [email protected]>wrote:

Hey guys, just out of curiosity which versions of Node are you using?


Reply to this email directly or view it on GitHub: https://github.com/visionmedia/expresso/pull/148#issuecomment-2702838

AutomatedTester avatar Nov 10 '11 23:11 AutomatedTester

expresso doesn't make you notify it when you're done (unfortunately) so we can't really auto-exit unless we add that and everyone updates all the tests. I'll release mocha soon when I have some time to finish it, there's an interface very similar to expresso so if anyone wants to migrate it should be pretty painless

tj avatar Nov 10 '11 23:11 tj

Uhm, not sure if I understood… My thought was that I told expresso that my test had finished by calling that beforeExit or next argument; therefore, once expresso had ran out of files (in line 792) it would finish the process.

ignacioiglesias avatar Nov 11 '11 01:11 ignacioiglesias

beforeExit doesn't really help but yeah when --serial next() is enough, but not when running parallel

tj avatar Nov 11 '11 01:11 tj

Sorry for my late answer.

I think that the problem was having to hit CTRL + C when testing in --serial mode. Even though I was calling next() when finished, I'd still had to manually exit.

Of course that, without --serial, next() will not be available; but I thought this could be useful to fix at least part of this gotcha.

Anyway, feel free to close this :)

Thanks for your help, TJ!

ignacioiglesias avatar Nov 14 '11 16:11 ignacioiglesias