omdel omdel - 4 months ago 7x
Node.js Question

detecting test failures from within afterEach hooks in Mocha

I'm trying to create an afterEach hook with logic that should only fire if the previous test failed. For example:

it("some_test1", function(){
// something that could fail

it("some_test2", function(){
// something that could fail

if (some_test_failed) {
// do something to respond to the failing test
} else {
// do nothing and continue to next test

However, I have no known way of detecting if a test failed from within the afterEach hook. Is there some sort of event listener I can attach to mocha? Maybe something like this:

myTests.on("error", function(){ /* ... */ })


You can use this.currentTest.state (not sure when this was introduced):

afterEach(function() {
  if (this.currentTest.state == 'failed') {
    // ...