Open ignacioiglesias opened 13 years ago
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
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.
Hey guys, just out of curiosity which versions of Node are you using?
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
Is that successor the beforeExit
or next
argument that is provided when using --serial
?
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 < reply@reply.github.com>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
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
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.
beforeExit doesn't really help but yeah when --serial next() is enough, but not when running parallel
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!
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 theelse
block but that would cause Expresso to outputFailure: 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.