Исходный код для better-tape https://github.com/amrish7/better-tape

Лента является одним из лучших инструментов для тестирования JavaScript. Он легкий, избегает глобальных переменных и довольно быстр по сравнению с другими средами тестирования, такими как Mocha и Jasmine. Лента вместе с sinon и proxyquire позаботится обо всех моих потребностях в тестировании проектов myJavaScript на работе и вне ее.

Несмотря на свое величие, лента имеет довольно много недостатков, таких как отсутствие крючков жизненного цикла, что было огромным преимуществом для таких людей, как я, которые мигрировали с Mocha. better-tape был создан, чтобы восполнить некоторые из этих пробелов.

[email protected] поддерживает следующие функции

  1. Крючки жизненного цикла для верхнего уровня и вложенных тестовых случаев (также известные как хуки before и after)
  2. Поддержка only API во вложенных тестовых примерах

Есть много похожих форков tape, которые предлагают аналогичные функции, но ИМХО, они имеют ограниченные реализации жизненного цикла и предлагают только хуки до/после для вложенных тестовых случаев.

Установить

npm i better-tape --save-dev

использование

Поскольку better-tape разветвляется из tape, обратитесь к ленте README для получения полной документации. В этой статье я расскажу только о дельта-функциях.

$ better-tape tests/**/*.js

Новые возможности

  1. Поддержка хуков before и after для простых невложенных тестов

Вывод

TAP version 13
# Subtest: test/sample.js
    # Test 1

    >> INSIDE before
    ok 1 Executing Test 1
    >> INSIDE after

    # Test 2

    >> INSIDE before
    ok 2 Executing Test 2
    >> INSIDE after

    1..2
    # tests 2
    # pass  2

    # ok

ok 1 - test/sample.js # time=109.678ms

1..1
# time=122.405ms

2. Поддержка before и after ловушек для вложенных тестов

Вывод

TAP version 13
# Subtest: test/sample.js
    # Suite 1

    >> INSIDE before
    # Nested test 1

    	 >>>> INSIDE NESTED before
    ok 1 Executing Nested Test 1
    	 >>>> INSIDE NESTED after

    # Nested test 2

    	 >>>> INSIDE NESTED before
    ok 2 Executing Nested Test 2
    	 >>>> INSIDE NESTED after

    >> INSIDE after

    1..2
    # tests 2
    # pass  2

    # ok

ok 1 - test/sample.js # time=102.496ms

1..1
# time=115.107ms

3. Поддержка ONLY во вложенных тестовых случаях

Использование only с вложенными тестовыми примерами. Поддерживается только в [email protected]

Вывод

# Subtest: test/only6.js
    # only6 nested only test
    # nested ONLY test-3
    ok 1 Only nested test case that should have been run
1..1
    # tests 1
    # pass  1
# ok
ok 1 - test/only6.js # time=130.732ms
1..1
# time=144.871ms

Не стесняйтесь ознакомиться с полной кодовой базой на https://github.com/amrish7/better-tape, а для запросов новых функций создайте задачу с меткой enhancement и добавьте в нее подробности.