Я использую mocha с chai.js для модульного тестирования CoffeeScript. У меня есть задача скомпилировать файлы кофе в тестовую папку и запустить PhantomJS для запуска тестов мокко.
Все работает нормально, однако chai.js указывает только, какой тест не прошел и каковы ожидаемые и фактические значения, он не указывает, какое утверждение не проходит в тестовом примере. Есть ли хороший способ напечатать утверждение или, по крайней мере, индекс ошибочного утверждения? Я также включил chai.Assertion.includeStack
, однако он показывает только номер строки в файле JavaScript, что не очень полезно для тестов CoffeeScript.
FizzBuzzTest.coffee
fizz = new FizzBuzz()
describe "Print numbers from 1 to 100", ->
it "First 10 digits from 1 to 5", ->
result = fizz.do()
arr = result.split(fizz.Delimiter)
expect(arr[0]).to.equal("1")
expect(arr[1]).to.equal("2")
expect(arr[2]).to.equal(fizz.Fizz)
expect(arr[3]).to.equal("3") # this assertion should fail
expect(arr[4]).to.equal(fizz.Buzz)
Выполнение тестов
$ grunt test
Running "mocha:run" (mocha) task
Testing: Content/runner.html
Print numbers from 1 to 100
✓ First 10 digits from 1 to 5
1) Last 10 digits from 95 to 100
✓ Print FizzBuzz instead of number which is divisible by both 3 and 5
✓ Check number
✓ Check Fizz
✓ Check Buzz
✓ Check FizzBuzz
✓ Check if > 100 then null
✓ Check if < 1 then null
8 passing (113ms)
1 failing
1) Print numbers from 1 to 100 Last 10 digits from 95 to 100:
AssertionError: expected true to be false
at file:///Users/milan/Sites/CoffeeTests/Content/js-libs/chai/chai.js:918
at file:///Users/milan/Sites/CoffeeTests/Content/js-libs/chai/chai.js:1159
at file:///Users/milan/Sites/CoffeeTests/Content/js-libs/chai/chai.js:3563
>> 1/9 tests failed (0.11s)
Warning: Task "mocha:run" failed. Use --force to continue.
Aborted due to warnings.
Вопрос. Есть ли хороший способ настроить chai.js, чтобы он более точно указывал, где произошла ошибка AssertionError?
Например: AssertionError: ожидается, что true будет ложным в строке expect(arr[3]).to.equal("3")
Спасибо.