at the time of writing I prefer tap-min

  • summary for passed tests
  • detailed failed test assertions
  • console log statements still make it to the output to help identify the issue

lets take a look at possible alternatives and a quick comparison

test code

const test = require('tape')

test('is okay', t => {
t.plan(1)
console.log('log: this test will be okay')
t.ok('is okay')
})

test('is okay', t => {
t.plan(1)
console.log('log: this test will fail')
t.notOk('is not okay')
})

tape reporter

TAP version 13
# is okay
log: this test will be okay
ok 1 should be truthy
# is okay
log: this test will fail
not ok 2 should be falsy
---
operator: notOk
expected: false
actual: 'is not okay'
at: Test.t (/Users/uldis/git/playgrounds/tape-reporters/test.js:12:5)
...

1..2
# tests 2
# pass 1
# fail 1

faucet reporter

  • compacts successful scenarious and comes with colors
  • hides console log statements
✓ is okay
⨯ is okay
not ok 2 should be falsy
---
operator: notOk
expected: false
actual: 'is not okay'
at: Test.t (/Users/uldis/git/playgrounds/tape-reporters/test.js:12:5)
...

# tests 2
# pass 1
⨯ fail 1

tap-spec reporter

  • mocha like output
  • summary contains failed tests
  is okay

log: this test will be okay
✔ should be truthy

is okay

log: this test will fail

✖ should be falsy
------------------
operator: notOk
expected: false
actual: 'is not okay'
at: Test.t (/Users/uldis/git/playgrounds/tape-reporters/test.js:12:5)




Failed Tests: There was 1 failure

is okay

✖ should be falsy


total: 2
passing: 1
failing: 1
duration: 22ms

tap-dot reporter

  • very compact
  • hides console log statements
  .x


---
operator: notOk
expected: false
actual: 'is not okay'
at: Test.t (/Users/uldis/git/playgrounds/tape-reporters/test.js:12:5)
...



2 tests
1 passed
1 failed

Failed Tests: There was 1 failure

x should be falsy

tap-min reporter

  • minimalistic output
  • returns full details for failed tests
TAP version 13
# is okay
log: this test will be okay
ok 1 should be truthy
# is okay
log: this test will fail
not ok 2 should be falsy
---
operator: notOk
expected: false
actual: 'is not okay'
at: Test.t (/Users/uldis/git/playgrounds/tape-reporters/test.js:12:5)
...

tap-bail reporter

  • stops after first failed test
TAP version 13
# is okay
log: this test will be okay
ok 1 should be truthy
# is okay
log: this test will fail
not ok 2 should be falsy

tap-pessimist reporter

  • super minimalist output of just the failed test names
2 - should be falsy