omdel omdel - 1 year ago 94
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(){ /* ... */ })

Answer Source

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

afterEach(function() {
  if (this.currentTest.state == 'failed') {
    // ...
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download