Тестування блоку Node.js [закрито]


164

Чи є якісь хороші рамки тестування блоку node.js (сервер js), які зараз є там? Я шукаю щось трохи глибше, ніж надано модуль Assert.

Відповіді:


66

Я в кінцевому підсумку використовував вузловий блок і дуже задоволений цим.

Я використовував Expresso спочатку, але той факт, що він паралельно проводить тести, спричинив кілька проблем. (Наприклад, використання світильників баз даних не добре працює в цій ситуації).


25
Expresso не змушує вас паралельно запускати тести. Подайте йому аргумент --serial, і він запустить їх усіх у веселому порядку.
einaros

3
Щойно завантажений і використаний nodeunit ... робить саме те, що говорить, працював перший раз ftw!
Майкл Даусман

1
Nodeunit трохи дивний, тому що вимагає кожного тесту для виклику .done()imho.
Кос

2
Якби я починав новий проект зараз, я б, ймовірно, використовував Mocha як тестовий фреймворк
evilcelery

1
Nodeunit вимагає .done()пристосування до асинхронного тестування. Я погоджуюсь, що це часом може бути трохи непростим, але це має вагому причину для цього.
L0j1k

48

Я також шукав гідну тестову основу для вузла і знайшов Mocha . Це офіційний спадкоємець Expresso і здається дуже зрілим.

Він дозволяє підключати різні бібліотеки тверджень, пропонує репортери для висвітлення коду та інших речей (ви можете підключати свої власні). Він може запускати синхронізацію чи асинхронізацію та має стислий API.

Я спробую і звіту ...

Редагувати:

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

ОНОВЛЕННЯ:

Я все ще дуже переконаний у Мочі. Інтеграція з chai дозволяє підключати різні стилі тверджень. Ви можете перевірити робочу програму в цьому проекті github . Зараз я використовую його з кармою, інтегруючи звіт про покриття коду, автоматичні спостереження та гарну інтеграцію з IntelliJ


Посилання проекту github розірвано. Чи можете ви відновити його, будь ласка?
Карлісуп

1
Початок роботи з Mocha - brianstoner.com/blog/testing-in-nodejs-with-mocha
Nicholas Blasgen

15

Я особисто використовував лише модуль затвердження, але також хочу більше. Я переглянув багато модулів вузлів, і популярні рамки тестування блоків є вузловими одиницями і повинні (що робиться тим самим хлопцем, що і Expresso (можливо оновлене ім’я?)

Обіцяння також виглядає багатообіцяючим.


15
Я схвалюю вас саме за цю каламбур.
ThomasReggi

15

Особисто я затримався з Expresso , але є купа різних рамок, які вміщують більшість стилів тестування.

Joyent має великий список ; дайте, щоб піти.


1
Expresso - це єдиний, який має сенс для мене, і працює з асинхронним кодом належним чином. Спробували обітниці і квіта теж.
balupton

5

vows - це суцільна бібліотека тестування одиниць для node.js, але синтаксис є стомлюючим.

Я написав тонкі абстракції під назвою обітниць-Вільний , який робить 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
});

Більше прикладів


6
амінь до цього, синтаксис обітниць - це жахливий ІМО
Донн Фелкер

Була грати з обітами з приємною обгорткою. Це виглядало як гарна ідея для тестування json api, але швидко придумала. Я також схильний виявити, що апіси, які сильно орієнтовані на ланцюг таких дзвінків, важкі у використанні і важко налагоджувати. Вони добре виглядають на прикладах, але не працюють добре в реальному світі.
drekka

@drekka обітниці та обітниці - це жахливо. використовувати mocha
Raynos

Спробуйте зараз, але, схоже, виникають подібні проблеми.
drekka

ви повинні використовувати його неправильно тоді. спробуйте прочитати gist.github.com/2896455 . @drekka
Raynos

4

Я думаю, що серед різних доступних рамок тестування мока є найсвіжішим та дуже простим у виконанні. Ось чудовий підручник про те, як ним користуватися: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/


Ну, дякую за ваш комплімент щодо підручника :)
s0nica

1

Якщо ви знайомі з QUnit , ви можете використовувати node-qunit, який є свого роду обгорткою вузла навколо існуючої структури QUnit.


0

Спочатку створений для node.js, deadunit є бібліотекою тестування блоку javascript для node.js та браузера. Деякі його унікальні атрибути:

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

0

Щойно я завантажив проект, який використовую для тестування nodejs з кармою та Жасмін: narma . Ваші модулі вузлів завантажуються в браузер nodewebkit, щоб ви могли виконувати модулі вузлів і використовувати бібліотеки, такі як jquery, в одній купі.


0

тест-студія - це пакет npm, що забезпечує потужний, веб-інтерфейс для тестування одиниць. Він підтримує такі речі, як виконання окремих тестів або груп тестів та перехід інспектора вузлів в окремі тести. В даний час він підтримує мокко, і більше фреймворків буде підтримуватися в майбутньому з урахуванням попиту.

Детальніше про це читайте тут .

Відмова: Я - автор.


1
схоже, це написав ти, правда? якщо так, то слід розкрити цей факт у своїй відповіді.
strugee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.