Javascript JsTestDriver Жасмин и Жасмин-jquery

У меня есть много модульных тестов Jasmine, которые запускают модульные тесты для кода Javascripts. Они используют плагин Jasmine-jquery для манипулирования DOM. они используют loadFixture для загрузки фикстур HTML

Я пытался автоматизировать эти модульные тесты, используя JsTestDriver, с JasmineAdapter. Но все тесты, включающие манипуляции с DOM-jquery, не проходят? Что-то не так с этим? Есть ли способ использовать Jasmine-jquery с JsTestDriver?


person Ghassan Karwchan    schedule 19.09.2011    source источник


Ответы (3)


Я отвечу сам, потому что я нашел решение этой проблемы. Проблема заключалась в том, что Jasmine-Jquery использует ajax для загрузки html-фикстуры и использует относительный путь, предполагая, что html-фикстуры расположены где-то относительно контейнера HTML, в котором выполняются тесты Jasmine. но поскольку JsTestDriver загружает тесты внутри своего собственного «пространства», поэтому мы должны изменить местоположение, где Jasmine-Jquery ищет эти html-фикстуры, и заставить JsTestDriver загружать их.

поэтому решение следующее:

JsTestDriver имеет возможность загружать статические html-файлы. в файле конфигурации добавьте следующее:

Подача: - например: Подача: - приспособления*.html

теперь вы можете получить доступ к ним в следующем формате http:localhost:9876/test/fixtures/..., вы сообщаете Jasmine-jquery, что нужно загружать приборы из этого места.

и вуаля, ваши тесты снова заработают.

person Ghassan Karwchan    schedule 20.09.2011
comment
У меня есть файл jar, работающий в моей папке jasmine. Внутри у меня есть lib/jasmine-core/jasmine.js. у меня также есть сценарии/test.js и приспособления/текст.html. Я сделал Serve:-fixtures/*.html, но я все еще получаю сообщения об ошибках паники с 'fixtures' '/fixtures' и другими вариантами при установке jasminesfixturePath. Есть идеи? - person Dave Stein; 09.03.2012
comment
Ах, я прочитал ответ Моники и увидел, что мне нужно поставить /test/ впереди. Это решило это. Пример с локальным хостом немного сбил меня с толку, поскольку мой сервер не находится на локальном хосте. - person Dave Stein; 09.03.2012
comment
Это не работает для JsTestDriver-1.3.4-a.jar, но работает для JsTestDriver-1.3.4.b.jar в Windows. - person gotofritz; 29.05.2012

Просто чтобы немного пояснить предыдущую публикацию.

Если в вашем файле конфигурации jsTestDriver у вас есть:

обслуживать:

spec/fixtures/*_fixture.html

Затем вам нужно переопределить набор тестов с помощью

jasmine.getFixtures().fixturesPath = '/test/spec/fixtures';

Это в основном /test/ + любой путь, который вы объявляете в разделе serve в вашем файле конфигурации jsTestDriver.

person Monica    schedule 01.11.2011

Я только что выпустил набор инструментов с открытым исходным кодом, который, надеюсь, поможет другим так же, как и мне. Это набор из многих инструментов с открытым исходным кодом, который дает вам работающее приложение для магистрали requirejs из коробки.

У него есть более элегантное решение с использованием текстового плагина requirejs и плагина руля requirejs.

Он предоставляет отдельные команды для запуска: веб-сервер разработки, запуск тестов для одного браузера jasmine, запуск тестов для нескольких браузеров jasmine js-test-driver и конкатенизацию/минификацию для JavaScript и CSS. Он также выводит неминифицированную версию вашего приложения для отладки в рабочей среде, предварительно компилирует ваши шаблоны руля и поддерживает интернационализацию. Настройка не требуется. Это просто работает.

http://github.com/davidjnelson/agilejs

person davidjnelson    schedule 16.02.2013