2012-06-07 2 views
8

Любой лучший способ запустить jasmine HTML-репортер с браузером в стиле кода? Я также хочу, чтобы иметь возможность запускать этот безголовый с phantomjs, таким образом, потребность в репортере HTML.Как тестировать устройство с помощью жасмина и прокручивать страницы?

ответ

4

Я пока не думаю, что есть пакет jasmine-browserify, и он не соответствует способам браузера/NPM делать вещи (избегать глобального экспорта).

На данный момент я просто включить /node_modules/jasmine-reporters/ext/jasmine.js и jasmine-html.js в верхней части моей <head>, и требуют, чтобы все мои функции в верхнем уровне spec_entry.js, что я затем использовать в качестве отправной точки для Browserify расслоения, я поставил сразу после этого в <head>. (Обратите внимание, что если точка входа не находится на верхнем уровне, у вас будет плохое время из-за долгой, грубой ошибки в Browserify).

Это хорошо играет с jasmine-node, если вы не предполагаете наличие глобального document или window. Однако вам не нужно регистрировать свои спецификации в этом spec_entry.js, если вы не хотите взломать Browserify, чтобы заставить его сканировать ваши каталоги для файлов .spec.js.

Я бы очень интересовался более элегантным решением, которое будет прозрачно работать с jasmine-node и браунировать.

+3

Привет, очень поздно к вечеринке, но если это все еще полезно для вас, проверьте мой ответ или https://github.com/amitayd/grunt-browserify-jasmine-node-example –

8

Я создал подробный примерный проект, посвященный тестированию жасмина (и другие) - см. https://github.com/amitayd/grunt-browserify-jasmine-node-example. Обсуждение на my blog post

Подход в этом аспекте состоял в том, чтобы создать пакет Browserify для основного исходного кода (где все модули открыты), а другой для тестов, которые зависят от внешнего для основного исходного кода. Затем тесты можно запускать как в PhantomJS, так и в реальном браузере.

4

Если вы используете grunt-watchify, вам не нужно создавать spec_entry.js. Просто используйте требуют в своих спецификациях, а затем связать свои функции с хрюкать-watchify:

watchify: { 
     test: { 
      src: './spec/**/*Spec.js', 
      dest: 'spec/spec-bundle.js' 
     } 
    }, 
    jasmine: { 
     test: { 
      options: { 
       specs: 'spec/spec-bundle.js' 
      } 
     } 
    }, 

Затем запустить тесты с

grunt.registerTask('test', ['watchify:test','jasmine:test']); 
0

Вы также можете заглянуть в карме. Это очень просто настроить, и он будет следить за изменениями и повторять ваш тест. Просмотрите этот примерный проект, который использует Karma для тестирования проекта браузера/реагирования. Вам просто нужно добавить несколько зависимостей и создать файл karma.conf.js.

https://github.com/TYRONEMICHAEL/react-component-boilerplate

1

Как и все выше ответы мало устарели (конечно, это не означает, что они не работают больше и т.д.) Я хотел бы указать на https://github.com/nikku/karma-browserify это препроцессор для кармы бегуна. Он объединяет тестовые файлы со всеми необходимыми зависимостями. Такой созданный пул браузеров передается в карму, которая основывается на конфигурации. Имейте в виду, что вы можете выбрать любую современную тестовую среду (jasmin, mocha ...) и браузеры (фантом, хром ..) Вероятно, это именно то, что вам нужно :)

Смежные вопросы