Любой лучший способ запустить jasmine HTML-репортер с браузером в стиле кода? Я также хочу, чтобы иметь возможность запускать этот безголовый с phantomjs, таким образом, потребность в репортере HTML.Как тестировать устройство с помощью жасмина и прокручивать страницы?
ответ
Я пока не думаю, что есть пакет 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 и браунировать.
Я создал подробный примерный проект, посвященный тестированию жасмина (и другие) - см. https://github.com/amitayd/grunt-browserify-jasmine-node-example. Обсуждение на my blog post
Подход в этом аспекте состоял в том, чтобы создать пакет Browserify для основного исходного кода (где все модули открыты), а другой для тестов, которые зависят от внешнего для основного исходного кода. Затем тесты можно запускать как в PhantomJS, так и в реальном браузере.
Если вы используете 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']);
Вы также можете заглянуть в карме. Это очень просто настроить, и он будет следить за изменениями и повторять ваш тест. Просмотрите этот примерный проект, который использует Karma для тестирования проекта браузера/реагирования. Вам просто нужно добавить несколько зависимостей и создать файл karma.conf.js.
https://github.com/TYRONEMICHAEL/react-component-boilerplate
Как и все выше ответы мало устарели (конечно, это не означает, что они не работают больше и т.д.) Я хотел бы указать на https://github.com/nikku/karma-browserify это препроцессор для кармы бегуна. Он объединяет тестовые файлы со всеми необходимыми зависимостями. Такой созданный пул браузеров передается в карму, которая основывается на конфигурации. Имейте в виду, что вы можете выбрать любую современную тестовую среду (jasmin, mocha ...) и браузеры (фантом, хром ..) Вероятно, это именно то, что вам нужно :)
Привет, очень поздно к вечеринке, но если это все еще полезно для вас, проверьте мой ответ или https://github.com/amitayd/grunt-browserify-jasmine-node-example –