In English

узел-кран

  1. тутти и густи, соно густи

Полнофункциональная зрелая тестовая среда на основе TAP для Node.js.

Установите его, запустив:

npm install --save-dev tap

Просто хочешь увидеть код? Начать!

нажмите включает из коробки:

  1. Тестовый фреймворк для написания тестов в Node.js.
  2. Интерфейс командной строки для выполнения тестов и отчетности об их успехе или неудаче.
  3. Поддержка тест-покрытия В том числе охват дочерних процессов, порожденных в процессе тестирования.
  4. Поддержка параллельных тестов В том числе запуск некоторых тестов параллельно, а другие - поочередно.

Увидеть журнал изменений для последних обновлений, или просто начать с основы ,

Почему вы должны использовать эту вещь? ДАЙТЕ МНЕ СКАЗАТЬ

Просто шучу.

Большинство фреймворков тратят много своей документации, рассказывая, почему они самые лучшие. Я не собираюсь этого делать.

тутти и густи, соно густи

Тестирование программного обеспечения - это задача разработки программного обеспечения и взаимодействия с пользователем, которая балансирует на пересечении многих противоречивых требований.

Node-tap основан на мой мнения о том, как должна работать тестовая структура, и что она должна позволять вам делать. У меня нет никакого мнения о том, разделяете ли вы эти мнения или нет. Если вы поделитесь ими, вам, вероятно, понравится эта библиотека тестов.

  1. Тестовые файлы должны быть «обычными» программами, которые можно запускать напрямую.

    Это означает, что он не может требовать специального бегуна, который помещает магические функции в глобальное пространство. node test.js - это идеальный способ запустить тест, и он должен функционировать точно так же, как когда он запускается причудливым бегуном с отчетностью и тому подобным. Тесты JavaScript должны быть программами JavaScript; не англоязычные стихи со странной пунктуацией.

  2. Тестовый вывод должен быть связан со структурой тестового файла так, чтобы его было легко определить.

    Это означает, что не нужно без необходимости откладывать тестовые функции до nextTick, потому что это изменило бы порядок вывода console.log. Синхронные тесты должны быть синхронными.

  3. Тестовые файлы должны запускаться в отдельных процессах.

    Это означает, что он не может использовать require () для загрузки тестовых файлов. Создание узла ./test.js должно быть точно такой же средой для теста, как и выполнение test-runner ./test.js. Тестирование узла / 1.js; Проверка узла / 2.js должна быть эквивалентна (с точки зрения теста) выполнению теста бегуна-теста / *. js. Это препятствует тому, чтобы тесты становились неявно зависимыми от глобалов друг друга.

  4. Утверждения обычно не должны быть выброшены (но броски ДОЛЖНЫ быть обработаны красиво).

    Я часто пишу программы с сотнями утверждений, основанных на некотором списке тестовых случаев. Если произойдет первый сбой, то я не знаю, провалил ли я 100 тестов или 1, не завернув все в попытку. Кроме того, я обычно хочу увидеть какой-то вывод или отчет, чтобы убедиться, что каждый из них действительно работал.

    По сути, это должно быть ваше решение, хотите ли вы бросить или нет. Тестовая структура не должна навязывать это вам, и должна облегчить любой случай.

  5. Отчеты о тестировании должны быть отделены от процесса тестирования, включены в платформу и включены по умолчанию для людей.

    сырой тестовый вывод должен быть машиночитаемым и понятным для человека, а отдельный процесс должен использовать результаты теста и превращать его в довольно краткий отчет , Это означает, что тестовые данные могут быть сохранены и проанализированы позже, копаться для дополнительной информации и так далее. Также: нян кот.

  6. Написание тестов должно быть легким, может быть, даже веселым.

    Чем ниже барьер для ввода для написания новых тестов, тем больше написано тестов. Это означает, что должен быть относительно небольшой словарь действий, которые я должен запомнить как автор теста. Нет смысла проводить различие между «набором» и «подтестом». Необычные DSL симпатичны, но больше о них нужно помнить.

    Тем не менее, если вы возвращаете Promise или используете DSL, который генерирует ошибочную ошибку, тогда тестовая среда должна работать просто так, чтобы помочь человеку понять ситуацию.

  7. Тесты должны выводить достаточно данных для диагностики сбоя, и не более или менее.

    Следы стека, указывающие на внутренние компоненты JS или на внутренности тестового фреймворка, не помогают. Тестовая среда является серьезной проблемой UX, и с ней нужно обращаться осторожно.

  8. Тестовое покрытие должно быть включено.

    Выполнение тестов с охватом меняет ваши взгляды на ваши программы и обеспечивает более глубокое понимание. Связки узла касания Нью-Йорк за это.

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

    Обеспечение защиты не включено по умолчанию, но я настоятельно рекомендую это. Вы можете поместить "tap": {"check-покрытие": true} в свой package.json или передать --100 в командной строке. В будущей версии он, вероятно, будет включен по умолчанию.

  9. Тесты должны выводиться в предсказуемом порядке.

    Даже если они выполняются параллельно, результаты теста должны быть согласованными.

  10. Тесты не должны требовать больше сборки, чем ваш код.

Babel и Webpack прекрасны и хороши. Но если ваш код не требует компиляции, то я думаю, что ваши тесты тоже не должны. Тап очень Обещание, известно , Модули JSX, TypeScript и ES являются встроенными, когда тесты выполняются с помощью CLI. (Поддержка ES-модуля может быть отключена с помощью --no-esm, что необходимо в некоторых очень редких случаях.)

  1. Тесты должны выполняться максимально быстро, учитывая все предыдущие соображения.

Начиная с версии 10, поддерживается тап параллельные тесты , Начиная с версии 13, по умолчанию для запуска тестов выполняется то же количество параллельных тестов, что и в системе.

Это делает тестирование значительно быстрее почти в каждом случае на любой машине с несколькими ядрами.

Тестирование программного обеспечения должно помочь вам создать программное обеспечение. Это должно быть одеяло безопасности и качественный трещотка, дающая вам поддержку в проведении масштабного рефакторинга и исправлении ошибок, не беспокоясь. Это не должен быть ритуал очищения или ритуал дедовщины.

В этом списке осталось много мнений! Разумные люди могут не согласиться. Но если ты киваешься, может, тап для тебя ,