Node.js Единичное тестирование

Есть ли в настоящее время там какие-либо хорошие node.js(серверные js) модульные системы тестирования? Я ищу что-то немного глубже, чем предоставленный модуль Assert.

Ответ 1

В итоге я использовал node -unit и действительно доволен им.

Я использовал Expresso, но тот факт, что он запускал тесты параллельно, вызвал несколько проблем. (Например, использование базы данных в этой ситуации не очень хорошо работает).

Ответ 2

Я также искал достойную тестовую структуру для node и нашел Mocha. Это официальный преемник Expresso и кажется очень зрелым.

Он позволяет подключать различные библиотеки утверждений, предлагает репортеров для покрытия кода и других вещей (вы можете подключать свои собственные). Он может запускать синхронизацию или асинхронный процесс и имеет сжатый API.

Я попробую и отправлю отчет...

EDIT:

После невероятного количества времени, посвященного другим проектам, я наконец вернулся к проекту Javascript и успел поиграть с моккой. Я могу серьезно порекомендовать его использовать. Тесты читаются очень хорошо, интеграция с gulp отличная, и тесты выполняются очень быстро. Я смог настроить автоматическое автономное, а также в браузере (прокрутку) тестовые прогоны и соответствующие отчеты о покрытии кода примерно через пол дня (большую часть времени потратил на понимание использования браузера из gulp). Для меня мокка кажется очень хорошим выбором для платформы тестирования.

UPDATE:

Я все еще очень убежден в Мокке. Интеграция с chai позволяет подключать различные стили утверждения. Вы можете проверить рабочую настройку в этот проект github. Теперь я использую его с кармой, интегрируя отчет о покрытии кода, автоматические наблюдатели и хорошую интеграцию с IntelliJ

Ответ 3

Лично я застрял с Expresso, но есть множество различных фреймворков, которые приспосабливают большинство стилей тестирования.

Joyent имеет обширный список; дайте этому идти.

Ответ 4

Я лично использовал только модуль assert, но также обнаружил, что хочу большего. Я просмотрел многие модули node, а популярные модульные модули тестирования node -unit и должны (что сделано тем же парнем, что и Expresso (возможно, обновленное имя?)

Vows также выглядит многообещающим.

Ответ 6

vows - это надежная библиотека тестирования модулей для node.js, но синтаксис утомительный.

Я написал тонкую абстракцию под названием vows-fluent, которая делает API доступным.

И я написал еще одну абстракцию, [vows-is], которая строится на обетах и ​​говорит о синтаксисе стиля BDD.

Примером может быть

var is = require("vows-is");

is.suite("testing is fun").batch()

    .context("is testing fun?")
        .topic.is("yes")
        .vow.it.should.equal("yes")

.suite().run({
    reporter: is.reporter
});

Дополнительные примеры

Ответ 8

Если вы знакомы с QUnit, вы можете использовать node-qunit, который является своего рода оболочкой node вокруг существующей рамки QUnit.

Ответ 9

Первоначально сделанный для node.js, deadunit - это библиотека тестирования модулей javascript для node.js и браузера. Некоторые из его уникальных атрибутов:

  • Легкая кривая обучения
  • Может выводить результаты теста в командной строке (цветной или обычный текст) или в виде html
  • Он печатает фактические строки кода, в которых содержатся ваши утверждения, поэтому ваш вывод имеет смысл, даже если вы не тратите много времени на публикацию комментариев к тесту
  • Он имеет простое утверждение count, которое упрощает работу с ожидаемыми исключениями и асинхронными утверждениями
  • он выводит исключение и любые прикрепленные данные, которые у них есть
  • это позволит вам узнать, висит ли ваш код (что-то вам не нужно, но обычно остается незамеченным)
  • Имеет ли API, управляемый событиями, возможность потоковой передачи результатов тестирования по сети или любым другим способом.
  • Поддерживает тестирование с помощью node-fibers

Ответ 10

test-studio - это пакет npm, который обеспечивает мощный веб-интерфейс для модульного тестирования. Он поддерживает такие функции, как выполнение отдельных или групп тестов и шаговый node -инспектор в отдельные тесты. В настоящее время он поддерживает мокко, и в будущем данный спрос будет поддерживаться в будущем.

Подробнее об этом здесь.

Отказ от ответственности: я автор.

Ответ 11

Я только что загрузил проект, который я использую для unit test nodejs с кармой и Жасмином: narma. Ваши модули node загружаются в браузер nodewebkit, поэтому вы можете выполнять модули node и использовать библиотеки, такие как jquery, в одной и той же куче.