2012-06-07 11 views

Odpowiedz

4

Nie sądzę, że istnieje jeszcze pakiet jasmine-browserify, który nie pasuje do sposobu działania przeglądarki Browserify/NPM (unikaj globalnego eksportu).

Na razie, po prostu zawierać /node_modules/jasmine-reporters/ext/jasmine.js i jasmine-html.js na szczycie mojej <head> i wymagają wszystkie moje widowisko w górnym poziomie spec_entry.js że następnie użyć jako punkt wyjścia dla wiązki Browserify że ja kładę prawo potem w <head>. (Zauważ, że jeśli punkt wejścia nie jest na najwyższym poziomie, będziesz miał zły czas z powodu długotrwałego, paskudnego błędu w przeglądarce Browserify).

To ładnie gra z jasmine-node, o ile nie zakładasz obecności globalnej document lub window. Musisz jednak pamiętać o zarejestrowaniu specyfikacji w tym numerze spec_entry.js, chyba że chcesz zhakować program Browserify, aby zmotywować katalogi do plików .spec.js.

Byłbym bardzo zainteresowany bardziej eleganckim rozwiązaniem, które byłoby przejrzyste w pracy z węzłem jaśminowym i przeglądarką.

+3

Witam, bardzo późno na imprezę, ale jeśli jest nadal przydatne dla Ciebie, sprawdź moją odpowiedź lub https://github.com/amitayd/grunt-browserify-jasmine-node-example –

8

Stworzyłem szczegółowy przykładowy projekt, który dotyczy testowania jaśminów (i innych) - patrz https://github.com/amitayd/grunt-browserify-jasmine-node-example. Dyskusja pod adresem my blog post

Podejście w tym aspekcie polegało na stworzeniu pakietu Browserify dla głównego kodu źródłowego (na którym są eksponowane wszystkie moduły), oraz jednego dla testów opartych na zewnętrznych dla głównego kodu źródłowego. Następnie testy można uruchomić zarówno w PhantomJS lub prawdziwej przeglądarce.

4

Jeśli używasz grunt-watchify, nie ma potrzeby tworzenia pliku spec_entry.js. Wystarczy użyć wymagają w swoich specyfikacji, a następnie połączą swoje widowisko ze grunt-watchify:

watchify: { 
     test: { 
      src: './spec/**/*Spec.js', 
      dest: 'spec/spec-bundle.js' 
     } 
    }, 
    jasmine: { 
     test: { 
      options: { 
       specs: 'spec/spec-bundle.js' 
      } 
     } 
    }, 

Następnie uruchomić swoje testy z

grunt.registerTask('test', ['watchify:test','jasmine:test']); 
0

Można również zajrzeć do karmy. To naprawdę proste w konfiguracji i będzie obserwować zmiany i ponownie uruchomić test. Sprawdź ten przykładowy projekt, który używa Karmy do testowania projektu przeglądarki/reagowania. Wystarczy dodać kilka zależności i utworzyć plik karma.conf.js.

https://github.com/TYRONEMICHAEL/react-component-boilerplate

1

Ponieważ wszystkie powyższe odpowiedzi są trochę przestarzałe (oczywiście to nie znaczy, że nie są one pracować dłużej itd.) Chciałbym wskazać https://github.com/nikku/karma-browserify jest to karma dla preprocesora biegacza. Łączy pliki testowe ze wszystkimi wymaganymi zależnościami. Tak utworzony pakiet przeglądarki jest przekazywany do karmy, która bazuje na konfiguracji, która go uruchamia. Pamiętaj, że możesz wybrać dowolne nowoczesne środowisko testowe (jasmin, mocha ...) i przeglądarki (phantom, chrome ..) Prawdopodobnie właśnie tego potrzebujesz :)

Powiązane problemy