2011-09-19 14 views
5

Mam wiele testów jednostkowych Jasmine, które testują jednostki pod kątem kodu Javascript. Używają wtyczki Jasmine-jquery do manipulacji DOM. używają loadFixture, aby załadować lamp HTMLJavaScript JsTestDriver Jasmine & Jasmine-jquery

Próbowałem zautomatyzowania tych testów jednostkowych, używając JsTestDriver z JasmineAdapter Ale wszystkie testy obejmować DOM-jquery manipulacji nie przechodzą? Czy coś jest nie tak z tym? Czy istnieje sposób użycia Jasmine Jquery z JsTestDriver?

Odpowiedz

9

Będę odpowiedzieć sobie, ponieważ znalazłem rozwiązanie tego problemu. Problem polegał na tym, że Jasmine-Jquery używa ajaxa do ładowania urządzenia html i używa względnej ścieżki, zakładając, że urządzenia html znajdują się gdzieś w stosunku do kontenera HTML, który uruchamia testy Jasmine. , ale ponieważ JsTestDriver ładuje testy wewnątrz swojego "miejsca", musimy więc zmienić lokalizację, w której Jasmine-Jquery szuka tych urządzeń html i sprawić, aby JsTestDriver je załadował.

więc rozwiązanie jest następujące:

JsTestDriver ma możliwość załadowania statycznych plików HTML. w pliku konfiguracyjnym dodać następujące:

Podawać: - na przykład: Podawać: - oprawy * .html

teraz można uzyskać dostęp do tych z następującym formacie http: localhost: 9876/badanie/fixtures/... Pozwoliłeś Jasmine-jquery wiedzieć, aby załadować urządzenia z tej lokalizacji.

i voila, sprawisz, że twoje testy znów będą działać.

+0

Mam mój plik jar działa w moim folderze „jaśmin” Wewnątrz mam lib/jaśmin-rdzeń/jasmine.js. Mam również scripts/test.js i fixtures/text.html. Zrobiłem Serve: - fixtures/*. Html, ale wciąż dostaję błędy paniki z "fixtures"/fixtures i innymi odmianami podczas ustawiania jaśminu fixturePath. Jakieś pomysły? –

+0

Ah Czytałem odpowiedź Moniki i zobaczyłem, że muszę umieścić/przetestować/z przodu. To rozwiązało to. Przykład localhost rzucił mnie trochę, ponieważ mój serwer nie jest na localhost. –

+0

To nie działa dla JsTestDriver-1.3.4-a.jar, ale ja robi dla JsTestDriver-1.3.4.b.jar w systemie Windows. – gotofritz

3

Po to, by trochę wyjaśnić, previous posting.

Jeśli w pliku konfiguracyjnym jsTestDriver masz:

służyć:

spec/fixtures/*_fixture.html 

Następnie trzeba zastąpić swój zestaw testów z

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

który jest w zasadzie /test/ + cokolwiek ścieżka zadeklarujesz w sekcji serw w pliku konfiguracyjnym jsTestDriver.

0

Właśnie wydałem zestaw narzędzi open source, który, mam nadzieję, pomoże innym tak bardzo, jak mi pomaga. Jest to kompozycja wielu narzędzi open source, która daje gotowe działające szkielet aplikacji requirejs po wyjęciu z pudełka.

Ma to bardziej eleganckie rozwiązanie dzięki wtyczce tekstowej requirejs i wtyczce requirejs kierownicy.

Udostępnia pojedyncze polecenia do uruchomienia: serwer WWW dev, pojedynczy testowy test jaśminów, jaśminowy sterownik testowy js-test wielu przeglądarek oraz konkatenization/minification dla JavaScript i CSS. Wydaje także niemineralizowaną wersję aplikacji do debugowania produkcji, prekompiluje szablony kierownicy i obsługuje internacjonalizację. Nie wymaga konfiguracji. Po prostu działa.

http://github.com/davidjnelson/agilejs