Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

132
Views
Does after block still excecute if before or it block fail in mocha test

If a mocha test looks like this

describe("create a user") {
    before("login to system") {}
    it("execute assertion") {}
    after("delete the user") {}
}

If either before or it block failed, does the after block still execute or no?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Yes, when test fails it will run after hook.

This code:

before("login to system", () => {
  console.log("BEFORE")
  throw new Error('error');
})

it('testing...', (done) => {
  console.log("IT")
  done();
});

after("delete the user", () => {
  console.log("AFTER")
})

Output this:

BEFORE
    1) "before all" hook: login to system for "testing..."
AFTER


  0 passing (14ms)
  1 failing

  1) States Get
       "before all" hook: login to system for "testing...":
     Error: error
      at Context.<anonymous> (test\index.js:22:11)
      at processImmediate (node:internal/timers:463:21)

Also you can check this github discussion: #1612 where here says:

Please see the example below, showing that after is correctly invoked after the beforeEach failure

The code

// example.js
before(function() {
  console.log('before');
});

after(function() {
  console.log('after');
});

describe('suite', function() {
  beforeEach(function() {
    throw new Error('In beforeEach');
  });

  afterEach(function() {
    console.log('afterEach');
  });

  it('test', function() {
    // example
  });
});

And the output.

// Test run
$ mocha example.js

  before

  ․afterEach
after


  0 passing (7ms)
  1 failing

  1) suite "before each" hook:
     Error: In beforeEach
      at Context.<anonymous> (/Users/dstjules/git/mocha/example.js:11:11)
      at callFn (/usr/local/lib/node_modules/mocha/lib/runnable.js:251:21)
      at Hook.Runnable.run (/usr/local/lib/node_modules/mocha/lib/runnable.js:244:7)
      at next (/usr/local/lib/node_modules/mocha/lib/runner.js:259:10)
      at Immediate._onImmediate (/usr/local/lib/node_modules/mocha/lib/runner.js:276:5)
      at processImmediate [as _immediateCallback] (timers.js:358:17)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!