2008-09-18 13 views
19

Kod JavaScript może być trudny do utrzymania.
Szukam narzędzi, które pomogą mi zapewnić rozsądny poziom jakości.
Do tej pory znalazłem JsUNit, bardzo ładne ramy testu jednostkowego dla javascript. Testy mogą być uruchamiane automatycznie z ant na dowolnej dostępnej przeglądarce.
nie znalazłem jeszcze jakiś javascript odpowiednik PMD, Checkstyle, Findbug ...
Wtyczki Mavena do analizy jakości kodu javascript

Znasz statycznego kodu narzędzia analizy dla javascript?

+0

Twój tytuł nie wydaje się mieć sensu. Co maven ma do czynienia z kontrolą jakości JavaScript? – SCdF

+2

Naprawiono tytuł. Ponadto Maven ma wiele wspólnego z kontrolą jakości nad dowolnym kodem źródłowym, a także może automatycznie i konsekwentnie wypompowywać kompilacje i zsynchronizowane raporty jakości dla programistów z komputerów stacjonarnych i serwerów CI. – HDave

Odpowiedz

1

Szybkie Google dla "jslint ant task" ujawnia jslint4java, która najwyraźniej zawiera zadanie Ant.

+0

Zadanie an jslint4java powinno być dość łatwe do osadzenia w maven przy użyciu wtyczki antrun. –

+1

Udokumentowałem, jak to zrobić: http://happygiraffe.net/blog/2009/07/28/jslint4maven/ –

0

Pracowałem nad SweetDEV RIA project, która jest biblioteką znaczników Java złożoną z kilku komponentów "Web 2.0/Ajax/JavaScript".

Proces kompilacji Maven 2 zawiera kilka wtyczek w domu, który uruchamia JSLint (kod weryfikatora), JsMin (kod minifier), JsDoc generation (Javadoc jak dokumentacja), JsUnit (testy jednostkowe) oraz Selenium (w przeglądarce) testów.

Możesz rzucić okiem na the SweetDEV RIA maven plugins repository.

+0

Czy możesz edytować odpowiedź i naprawić zepsuty link na końcu? I zamień link 'jsunit.net' na https://github.com/pivotal/jsunit (domena jsunit.net została przejęta przez firmę reklamową) –

1

Ten projekt wygląda w pobliżu:

http://dev.abiss.gr/mvn-jstools/index.html

Generuje raport z JsLint. Wygląda na to, że nie wchodzi w fazę testową cyklu budowy, więc nie sądzę, że odrzuci kompilację, jeśli jslint znajdzie problemy (co chciałbym zrobić w moich projektach).

13

To jest stara nitka, ale jeśli interesuje cię testowanie Jasmine na BDD w twoim maven projekcie, to napisałem ten jaśminowy plugin do tego właśnie celu (to jest poprawienie jakości JS przez zachęcanie TDD do to).

http://github.com/searls/jasmine-maven-plugin

+1

+1 Świetna wtyczka, dziękuję. – earcam

10

Użyłem następującego kodu, aby uruchomić JSLint jako część fazy KOMPILACJI w Maven.

Pobiera jslint4java z repozytorium maven, więc nie potrzebujesz niczego więcej.

Jeśli JSLint znalazł problemy w plikach javascript, kompilacja się nie powiedzie.

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.6</version> 
      <executions> 
       <execution> 
        <phase>compile</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <target> 
          <taskdef name="jslint" classname="com.googlecode.jslint4java.ant.JSLintTask" classpath="${settings.localRepository}/com/googlecode/jslint4java/jslint4java-ant/1.4.2/jslint4java-ant-1.4.2.jar" /> 
          <jslint options="white,browser,devel,undef,eqeqeq,plusplus,bitwise,regexp,strict,newcap,immed"> 
           <predef>Ext,Utils</predef> 
           <formatter type="plain" /> 
           <fileset dir="${basedir}/src/main/resources/META-INF/resources/js" includes="**/*.js" /> 
          </jslint> 
         </target> 
        </configuration> 
       </execution> 
      </executions> 
      <dependencies> 
       <dependency> 
        <groupId>com.googlecode.jslint4java</groupId> 
        <artifactId>jslint4java-ant</artifactId> 
        <version>1.4.2</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
1

jslint4java została wspomniana kilka razy, nie pamiętam, którą wersję dodali, ale faktycznie jest to wbudowane zadanie Maven.

Tradycyjnie z jslint4java i Maven ludzie używali wtyczki antrun do uruchamiania zadania mrówki jslint4java, jednak teraz możesz skonfigurować to wszystko w Mavenie i uniknąć tego dodatkowego kroku.

http://docs.jslint4java.googlecode.com/git/2.0.2/maven.html

Powiązane problemy