Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mocha 8: Failing async test exits mocha watch mode on reload #4344

Closed
4 tasks done
mantoni opened this issue Jun 24, 2020 · 3 comments
Closed
4 tasks done

Mocha 8: Failing async test exits mocha watch mode on reload #4344

mantoni opened this issue Jun 24, 2020 · 3 comments

Comments

@mantoni
Copy link
Contributor

mantoni commented Jun 24, 2020

Prerequisites

  • Checked that your issue hasn't already been filed by cross-referencing issues with the faq label
  • Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
  • 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
  • Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with: node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend that you not install Mocha globally.

Description

mocha --watch exists on second run if async test fails.

Steps to Reproduce

With this test:

describe('mocha watch issue', () => {

  it('async', (done) => {
    setTimeout(() => {
      throw new Error('Fail');
    }, 1);
  });

});

Running:

mocha --watch

And then touching the test file to trigger a second run of the test.

Expected behavior: [What you expect to happen]

The test fails on the second run exactly like on the first run and mocha keeps watching.

Actual behavior: [What actually happens]

Mocha exits on the second test run.

Reproduces how often: [What percentage of the time does it reproduce?]

100%

Versions

  • The output of mocha --version and node node_modules/.bin/mocha --version: 8.0.1
  • The output of node --version: v14.4.0
  • Your operating system
    • name and version: macOS Catalina 10.15.5
    • architecture (32 or 64-bit): 64
  • Your shell (e.g., bash, zsh, PowerShell, cmd): fish
  • Your browser and version (if running browser tests): –
  • Any third-party Mocha-related modules (and their versions): –
  • Any code transpiler (e.g., TypeScript, CoffeeScript, Babel) being used (and its version): –

Additional Information

I have reported the very same issue for mocha 7 in #4143 and it got fixed. Maybe it's the same issue that somehow found its way back 😄

@boneskull
Copy link
Member

Yes, we've been monkeying with that code path, trying to reduce the chance we leak uncaughtException listeners.

@boneskull
Copy link
Member

cc @juergba who may have interest in this one. @mantoni if it's blocking you, adding a test to reproduce this in a PR would be helpful to get us moving. test/integration/options/watch.spec.js seems reasonable, and add a fixture in test/integration/fixtures/options/watch/

@boneskull
Copy link
Member

I think this is closed by #4382. Please let me know if it isn't.

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

No branches or pull requests

2 participants