Skip to content

Conversation

@ignacioiglesias
Copy link

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.

Juan Ignacio Iglesias added 2 commits October 29, 2011 10:44
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 :)
@AutomatedTester
Copy link

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

@michaelklishin
Copy link

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.

@ignacioiglesias
Copy link
Author

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

@tj
Copy link
Member

tj commented Nov 10, 2011

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

@ignacioiglesias
Copy link
Author

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

@AutomatedTester
Copy link

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:
#148 (comment)

@tj
Copy link
Member

tj commented Nov 10, 2011

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

@ignacioiglesias
Copy link
Author

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.

@tj
Copy link
Member

tj commented Nov 11, 2011

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

@ignacioiglesias
Copy link
Author

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants