2012-08-09 14 views
10

Chciałbym użyć Phantomjs i Jasmine do testowania jednostkowego javascript. Witryna Phantomjsa poleca użycie osobnej rzeczy do obsługi tego, w szczególności PhantomJasmine. Pobrałem PhantomJasmine i uruchomiłem przykład. Wszystko poszło idealnie. Następnie dodałem linię var system = require('system'); na początek pliku example_spec.js. Phantomjs teraz zgłasza błąd, gdy próbuję uruchomić przykład, który dostaję "ReferenceError: Can not find variable: require". Tak więc chcę robić rzeczy takie jak uruchomienie przeglądarki, ale wygląda na to, że nie mogę łączyć składni jaśminu i phantomjsa. Mogę używać tylko jasminu używając Phantomjs. Jak mogę użyć obu w tym samym pliku? na przykład:PhantomJS "Nie można znaleźć zmiennej: wymagaj" podczas korzystania z PhantomJasmine

console.log('Loading a web page'); 
var page = new WebPage(); 
var url = "http://www.phantomjs.org/"; 
page.open(url, function (status) { 
    //Page is loaded! 
    describe("A suite", function() { 
     it("contains spec with an expectation", function() { 
     expect(true).toBe(true); 
     }); 
    }); 
    phantom.exit(); 
}); 

Odpowiedz

4

Nie jest tak, jak powinieneś go używać. Kod kontrolujący phantomjs nie powinien być zmielony specyfikami jaśminu i vice versa.

Należy oddzielić specyfikacje do plików .js i utworzyć standardową instalację jaśminową za pomocą programu HTML spec runner, który ładuje pliki spec .js i otwiera ten plik HTML w phantomjs.

Innym rozwiązaniem jest użycie pomruku z phantomjs i jaśminem, aby automatycznie uruchamiać specyfikacje jaśminu.

https://github.com/cowboy/grunt
https://github.com/creynders/grunt-jasmine-task

+0

mam moje pliki rozdzielone. Otrzymuję ten sam błąd. Wewnętrzna treść mojego tagu head w pliku html to: gdzie plik execPage.js zawiera czysty kod phantomjs, a jaztest1 zawiera czysty kod jaśminu. Zajrzałem też do Grunta. Kolejnym był Jasmine z fantomowym js. Muszę wiedzieć, jak uruchamiać ze sobą skrypty Jasmine AND Phantomjs. tj: przejdź do strony, wykonaj jaśmin. – Hohohodown

+0

Myślę, że mam lepszy problem. Oto scenariusz: Mam tests.js, czyli kilka testów jaśminowych. Chcę przejść do strony google.com i sprawdzić, czy pasek wyszukiwania jest widoczny. google.com nie zawiera żadnych jaśminów. Jak mogę to zrobić? – Hohohodown

+0

Zadzwoń do skryptu jaśminowego na stronie html, a nie przez PhantomJS. Zasadniczo konfigurujesz to dokładnie tak, jak chcesz, gdy chcesz ręcznie uruchomić testy jasmine, a następnie po prostu przekazujesz adres URL tej strony HTML do PhantomJS, aby uruchomić ją w wierszu poleceń. – Creynders

Powiązane problemy