Ответы:
Я закончил тем, что использовал node-unit и действительно доволен этим.
Первоначально я использовал Expresso, но тот факт, что он запускает тесты параллельно, вызвал несколько проблем. (Например, использование фикстур базы данных не работает в этой ситуации).
.done()
imho.
.done()
размещения асинхронного тестирования. Я согласен, что иногда это может быть немного громоздко, но для этого есть веская причина.
Я также искал достойный тестовый фреймворк для узла и нашел Mocha . Он является официальным преемником Expresso и кажется очень зрелым.
Он позволяет подключать различные библиотеки утверждений, предлагает репортеров для покрытия кода и других вещей (вы можете подключить свои собственные). Он может запускать синхронизацию или асинхронность и имеет краткий API.
Я попробую и доложу ...
После невероятного количества времени, посвященного другим проектам, я наконец вернулся к проекту Javascript и успел поиграть с мокко. Я могу серьезно рекомендовать использовать его. Тесты читаются очень хорошо, интеграция с gulp великолепна и тесты выполняются очень быстро. Мне удалось настроить автоматические автономные тесты, а также тесты в браузере (browserify) и соответствующие отчеты о покрытии кода примерно за полдня (большую часть времени я потратил на понимание того, как использовать browserify из gulp). На мой взгляд, мокко кажется очень хорошим выбором для тестовой среды.
Я все еще очень убежден в Мокко. Интеграция с Chai позволяет подключать различные стили утверждений. Вы можете проверить рабочую настройку в этом проекте github . Сейчас я использую его с кармой, интегрирую отчет о покрытии кода, автоматические средства наблюдения и хорошую интеграцию с IntelliJ
Лично я использовал только модуль assert, но мне также хотелось большего. Я просмотрел множество узловых модулей, и популярные фреймворки для юнит-тестирования являются node-unit и должны (что сделано тем же парнем, что и Expresso (может быть, обновленное имя?)
Клятвы также выглядит многообещающе.
Лично я придерживался Expresso , но есть множество различных фреймворков, подходящих для большинства стилей тестирования.
Джойент имеет обширный список ; попробуй.
vows - это солидная библиотека модульного тестирования для node.js, но синтаксис утомителен.
Я написал тонкую абстракцию под названием vows-fluent, которая делает API цепным.
И я написал еще одну абстракцию, [vows-is], которая основывается на vows-fluent и предоставляет синтаксис в стиле 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
});
Я думаю, что среди различных доступных сред тестирования mocha является самым последним и очень простым в реализации. Вот замечательный учебник о том, как его использовать: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
Если вы знакомы с QUnit , вы можете использовать node-qunit, который является своего рода оболочкой узла вокруг существующей инфраструктуры QUnit.
Первоначально созданный для node.js, deadunit - это библиотека модульного тестирования javascript для node.js и браузера. Некоторые из его уникальных атрибутов:
count
утверждение, облегчающее работу с ожидаемыми исключениями, и асинхронные утвержденияЯ только что загрузил проект, который я использую для юнит-теста nodejs с помощью karma и Jasmine: narma . Ваши модули узлов загружаются в браузер nodewebkit, поэтому вы можете выполнять модули узлов и использовать библиотеки, такие как jquery, в одной и той же куче.
Тест-студия - это пакет npm, предоставляющий мощный веб-интерфейс для модульного тестирования. Он поддерживает такие вещи, как выполнение отдельных или групп тестов и включение нода-инспектора в отдельные тесты. В настоящее время он поддерживает mocha, и в будущем будет поддерживаться больше фреймворков, учитывая спрос.
Подробнее об этом читайте здесь .
Отказ от ответственности: я автор.