test-adapter.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. (function () {
  2. var Testem = window.Testem
  3. var regex = /^((?:not )?ok) (\d+) (.+)$/
  4. Testem.useCustomAdapter(tapAdapter)
  5. function tapAdapter(socket){
  6. var results = {
  7. failed: 0
  8. , passed: 0
  9. , total: 0
  10. , tests: []
  11. }
  12. socket.emit('tests-start')
  13. Testem.handleConsoleMessage = function(msg){
  14. var m = msg.match(regex)
  15. if (m) {
  16. var passed = m[1] === 'ok'
  17. var test = {
  18. passed: passed ? 1 : 0,
  19. failed: passed ? 0 : 1,
  20. total: 1,
  21. id: m[2],
  22. name: m[3],
  23. items: []
  24. }
  25. if (passed) {
  26. results.passed++
  27. } else {
  28. results.failed++
  29. }
  30. results.total++
  31. socket.emit('test-result', test)
  32. results.tests.push(test)
  33. } else if (msg === '# ok' || msg.match(/^# tests \d+/)){
  34. socket.emit('all-test-results', results)
  35. }
  36. // return false if you want to prevent the console message from
  37. // going to the console
  38. // return false
  39. }
  40. }
  41. }())