Кто-нибудь знает, есть ли что-то похожее на capybara для Node.js?
Есть ли capybara для Node.js?
Ответ 1
Как насчет Zombie?
Zombie.js
Безумно быстрое, безголовое тестирование с полным стеком с помощью Node.js
Укус
Если вы собираетесь писать безумно быстрый, безголовый браузер, как вы не можете назвать его зомби-зомби?
Zombie.js - облегченная структура для тестирования кода JavaScript на стороне клиента в моделируемой среде. Не требуется браузер.
Ответ 2
Cucumber-JS является самым близким, вы попадете в Javascript: https://github.com/cucumber/cucumber-js
Вы можете использовать библиотеку для управления JS, безголовыми и Selenium, однако в нем отсутствует общий API "capybara" между каждым из разных "миров". Хороший разговор в http://skillsmatter.com/podcast/agile-testing/cucumber-js-cuke-up-your-javascript и поддержка кода github https://github.com/jbpros/cukecipes
Я надеюсь, что когда завершен протокол проводки webdriver phantomjs (https://github.com/detro/ghostdriver), и если Soda/Selenium (https://github.com/LearnBoost/soda) способен управлять им, тогда безглазые тесты будут автоматизированы через Selenium, минуя необходимость Capybara.
Ответ 3
Я разработчик rails-turn- node, и я всегда искал аналогию в мире JS для выигрышной комбинации RSpec/Capybara. Вот что я нашел, что мне больше всего нравится.
- Mocha - для запуска асинхронных тестов
- Chai - для утверждений
- Request - для обработки HTTP-запроса/ответа
- Cheerio - для выбора элементов HTML из ответов
Вот более активное сообщение о том, как настроить этот стек, включая непрерывный запуск теста.
Счастливое тестирование!
Ответ 4
См. jelly.io:
Jellyfish - это проект Node, который позволяет легко запускать различные среды JavaScript и запускать ваш код.
Ответ 5
Hy!
Я создал библиотеку, чтобы помочь с cucumber-js. Он дает вам вызываемые шаги и анализируемые аргументы. Это работает с огурцом и не заменяет его.
Быстрые функции:
- Определения шагов синхронизации, не более обратных вызовов;
- Вызов другого шага из определений шагов;
- Разбирать значения, такие как массивы, объекты и десятичные знаки;
https://github.com/hackhat/cucumberry
Надеюсь, вы сочтете это полезным (:
Ответ 6
Мы создали полное решение для приемочного тестирования в JS
Вскоре он использует CucumberJS (Mocha/Jasmine), чтобы управлять вашими приемочными испытаниями
- Загрузка и запуск Phantom/Selenium
- Вставляет предварительно сконфигурированный экземпляр Webdriver.IO в контекст тестирования
- Включает библиотеку
request
npm (для REST) библиотека утверждений по вашему выбору (Chai/Jasmine-expect)- Использует волокна для синхронного тестирования (без обратного вызова ад/обещают путаницу)
- Работает с SauceLabs/BrowserStacks и т.д.
- Поддержка снаружи при тестировании в режиме просмотра, который постоянно запускает сценарии, которые вы отмечаете с помощью
@focus
- Поддерживает CI из коробки и проверяется на Circle/Codeship/Travis (с использованием безглавых Chrome/Firefox)
Это не делает вас кофе, но
Ответ 7
Что касается приемочных испытаний, я интенсивно использовал Capybara для Rails. И я недоволен альтернативами, перечисленными здесь для NodeJS. Вам понадобится популярная утилита веб-автоматизации в сочетании с возможностью делать утверждения относительно сценариев конкретной функции.
Когда вы думаете о веб-автоматизации в Node, Phantom и, таким образом, Каспер мертв. Так что же происходит сейчас? Кукловод. Я начал использовать Puppeteer несколько лет назад, когда он был в бета-версии и несколько статей и SO сообщений об этом. Но теперь Puppeteer становится лидером веб-автоматизации в Node. Тем не менее, вы не можете утверждать вещи в Puppeteer, что вы ожидаете от среды тестирования.
Но это не мешает нам интегрировать инструмент тестирования в веб-автоматизацию Puppeteer. Я нашел несколько решений, использующих Jest в качестве инструмента тестирования.
const puppeteer = require('puppeteer');
describe('Open Website', () => {
var browser, page;
var url = 'https://website.io'
beforeEach (async () => {
browser = await puppeteer.launch({ headless: false });
page = await browser.newPage();
})
afterEach (() => {
browser.close()
})
test('Title == Website Tools', async () => {
await page.goto(url);
const title = await page.title();
expect(title).toBe("Website Tools");
});
Ответ 8
Да, см. expresso и многое другое здесь - Структурная схема тестирования для node.js что специально поддерживает тестирование асинхронного кода?