2012-10-22 15 views
8

Jak mogę zintegrować (html) urządzenia z efektownymi? Czy istnieje jakakolwiek rekomendacja do wykonywania testów opartych na DOM lub czy jest to anty-wzór?Błąd podczas integrowania html z testacularjs

Cel: Próbuję przetestować niestandardowy moduł, który analizuje drzewo DOM i tworzy nową strukturę danych. Drzewo DOM może być dynamiczne (jak zawartość edytora html/markdown) i dlatego nie jest dobrym kandydatem do testów końcowych.

Problem: Próbuję użyć jaśminowego jquery do testowania DOM i testowego .conf.js, mam sekcję pozwalającą na ładowanie plików html do przeglądarki.

 

// list of files/patterns to load in the browser 
files = [ 
    JASMINE, 
    JASMINE_ADAPTER, 
    'test/spec/**/*.js', 
    'test/fixtures/*.html' **/* Needs to be included here to be served */** 
]; 
 

Jednak w moim testowym biegacz na linii komend pojawia się następujący komunikat o błędzie, kiedy upuścić urządzenie HTML (zanim jeszcze pisać żadnego jaśmin-jquery kod, aby załadować osprzętu):

 

Chrome 22.0 **ERROR** 
    Uncaught SyntaxError: Unexpected token < at /Users/myUser/myProject/test/fixtures/fixture_template.html:1 Chrome 22.0: Executed 0 of 0 ERROR (0.143 secs/0 secs) 
 

EDIT: Kolejny sposób zadawania tego samego pytania: Jak uzyskać testowe podejście do obsługi html i nie wysadzić biegacza testowego?

Jak już wspomniano wyżej, muszę zawierać „test/uchwyty/*. Html” w config ale zawodnik testowy tylko wysadza.

Odpowiedz

9

Aktualna wersja testacularjs nie obsługuje tego produktu. jednak autor testacularjs (Vojta Jina), zaproponował używam rozwiązanie proxy, aby obejść ten służąc html za pośrednictwem innego serwera WWW. dla tych, którzy ciekawi, oto koniec do końca kroki, aby dostać tę pracę.

  • Najpierw uruchom serwer WWW, wykonując polecenie podobne do następującego:

    python -m SimpleHTTPServer 3502 &

  • Rzuć plik (i) urządzeń w odpowiednim miejscu. Kopalnia była testów/uchwyty/first.html

    Teraz powinieneś być w stanie odwiedzić [http: // localhost: 3502/test/uchwyty/first.html] i zobaczyć znaczników podczas inspekcji źródło strony

  • Edytuj testacular.conf.js dodać blok konfiguracyjny

    
    proxies = { 
    '/fixtures' : 'http://localhost:3502/' 
    }; 
    
  • Edit sprawdzić swoją jednostkową jaśmin mieć blok podobny do poniższego

    
    beforeEach(function(){ 
         jasmine.getFixtures().fixturesPath = '/fixtures/test/fixtures'; 
        }); 
    

Teraz powinieneś być w stanie loadfixture/readfixture

6

Jak stwierdzono na http://testacular.github.com/0.6.0/config/files.html, od wersji 0.5.2 można korzystać z nowej składni konfiguracji:

files = [ 
    JASMINE, 
    JASMINE_ADAPTER, 
    'test/spec/**/*.js', 
    { 
    pattern: 'test/fixtures/*.html', 
    watched: true, 
    included: false, 
    served: true 
    } 
]; 

Ja tylko starałem to i to działa dobrze dla mnie.

+0

Miło, na to czekaliśmy! – monkeyboy

+0

+1, ale przynajmniej w nowszych wersjach trzeba również edytować domyślną listę dołączonych wstępnych sprężarek, aby nie uwzględniać wersji html2js. – AJJ

Powiązane problemy