Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error loading file: /test/src/test/webapp/unit/utilsSpec.js:1: Uncaught ReferenceError: describe is not defined #2

Open
alexost-de opened this issue Mar 30, 2013 · 9 comments

Comments

@alexost-de
Copy link

Hallo,
der Fehler taucht auf, wenn ich den Test mit dem Befehl starte:

java -jar misc/JsTestDriver.jar --tests all

Die jsTestDriver.conf lieg im Hauptverzeichnis rylc-tdd-master und hat den Inhalt aus dem Buch:
server: http://localhost:9876

load:
- src/main/webapp/app/*.js

test:
- src/test/webapp/unit/*.js

Starte ich aus dem falschen Verzeichnis aus? Habe ich jsTestDriver.conf falsch abgelegt? Sollte ich die JsTestDriver.jar woanders kopieren?

@stefanscheidt
Copy link
Owner

Hallo,

diesen Fehler kann ich nicht reproduzieren. Ich habe gerade noch einen Fehler in index_spec.js und in jstd-ui.conf entdeckt und behoben. Dieser Fehler hat aber eine andere Fehlermeldung prduziert.

Bitte auf dem aktuellen Master folgendes ausprobieren. Dabei "alles aus js-fadin" benutzen, das Projekt ist "self contained".

  1. JsTestDriver Server starten mit
java -jar misc/JsTestDriver.jar --port 9876 --runnerMode INFO
  1. Chrome mit http://localhost:9876/capture "einfangen"
  2. Unit-Tests ausführen mit
java -jar misc/JsTestDriver.jar --config jstd-unit.conf --reset --tests all --testOutput target/jstd-reports
  1. UI-Tests ausführen mit
java -jar misc/JsTestDriver.jar --config jstd-ui.conf --reset --tests all --testOutput target/jstd-reports

Klappt das?

@alexost-de
Copy link
Author

Upps... ich habe erst jetzt bemerkt, dass ich hier in dem "js-fadein" bin, eigentlich ist bei mir der Fehler im "rylc-tdd" aufgetaucht. Ich habe noch vergessen zu erwähnen, dass es bei mir auch ein Problem mir Dependency von jstestdriver in der pom.xml gab und ich den Block austauschen musste:

<dependencies>
    <dependency>
        <groupId>com.google.jstestdriver</groupId>
        <artifactId>jstestdriver</artifactId>
        <version>1.3.4.b</version>
        <scope>test</scope>
    </dependency>
</dependencies>

durch

<dependencies>
    <dependency>
        <groupId>com.google.jstestdriver</groupId>
        <artifactId>jstestdriver</artifactId>
        <version>1.3.4.b</version>
        <scope>system</scope>
        <systemPath>${basedir}/misc/JsTestDriver.jar</systemPath>
    </dependency>
</dependencies>

Ich werde aber das mit "...--runnerMode INFO" usw. im "js-fadein" auch ausprobieren.

@alexost-de
Copy link
Author

In README steht "...misc\install.bat für Windows ausführen" - die Datei ist aber nicht drin. Ich gehe davon aus, dass auch die aus "rylc-tdd" geeignet ist und kopiere sie einfach rüber.

@alexost-de
Copy link
Author

Nach der Anweisung aus der README klappt das leider nicht:

  1. "js-fadein" ausgecheckt
  2. "misc\install.bat" (kopiert aus dem "rylc-tdd"-Projekt) ausgefürt
  3. Projekt gebaut mit "mvn clean verify -Pintegration" (Chrome ist aus der Kommandozeile startbar)
  4. den Server mit "mvn jetty:run" gestartet
  5. der Aufruf von http://localhost:8585/js-fadin/UnitSpecRunner.html im Chrome ergibt:

HTTP ERROR: 404

Problem accessing /js-fadin/UnitSpecRunner.html. Reason:

Not Found

Powered by Jetty://

das gleiche mit http://localhost:8585/js-fadin/UiSpecRunner.html

(hat aber im "rylc-tdd" schon mal geklappt)

:(

@stefanscheidt
Copy link
Owner

Hallo,

js-fadein verwendet mittlerweile JsTestDriver 1.3.5, welcher im offiziellen Maven Repo zu finden ist. Daher ist "misc/install.bat" nicht mehr notwendig. Ich habe das README entsprechend angepasst.

Deinen Fehler kann ich leider nicht reproduzieren, Ich habe aber ein Typo in der README entdeckt: die URL vom UnitSpecRunner lautet http://localhost:8585/js-fadein/UnitSpecRunner.html ("js-fadein" statt "js-fadin"). Das habe ich auch korrigiert.

Klappt es mit der korrigierten URL?

@alexost-de
Copy link
Author

Guten Abend,
also README bin ich durchgegangen und dort klappt auch alles:

  • Unit Spec Runner aufrufen -> 7 specs, 0 failures in 0.04s
  • UI Spec Runner aufrufen -> Hello World! + fadein-Button + "Toggle testframe"-Button
  • Startseite der App aufrufen -> Hello World! + fadein-Button

Der Link hinter Startseite hat übrigens immer noch "...js-fadin" ;)

Zu Deinem JsTestDriver-Vorschlag:

der Schritt 3 (Unit-Tests) scheint zu klappen, die Ausgabe ist:

Total 18 tests (Passed: 18; Fails: 0; Errors: 0) (19,00 ms)
  Chrome 26.0.1410.43 Windows: Run 9 tests (Passed: 9; Fails: 0; Errors 0) (19,0
0 ms)
  Firefox 19.0 Windows: Run 9 tests (Passed: 9; Fails: 0; Errors 0) (19,00 ms)

die Ausgabe bekomme ich beim Schritt 4 (UI-Tests):

Total 2 tests (Passed: 0; Fails: 2; Errors: 0) (5572,00 ms)
  Chrome 26.0.1410.43 Windows: Run 1 tests (Passed: 0; Fails: 1; Errors 0) (5572
,00 ms)
    index.should fade the hello div in when the button is clicked failed (5572,0
0 ms): timeout: timeout: timed out after 5000 msec waiting for uitest.ready
  Firefox 19.0 Windows: Run 1 tests (Passed: 0; Fails: 1; Errors 0) (5092,00 ms)
    index.should fade the hello div in when the button is clicked failed (5092,0
0 ms): timeout: timeout: timed out after 5000 msec waiting for uitest.ready

@alexost-de
Copy link
Author

Der Test aus "rylc-tdd" klappt aber immer noch nicht :(

  1. JsTestDriver-Server gestartet
java -jar misc/JsTestDriver.jar --port 9876
  1. Chrome-Browser "eingefangen"

    http://localhost:9876/capture
  2. Test ausgeführt

    java -jar misc/JsTestDriver.jar --tests all

Die jsTestDriver.conf ist vorhanden:

server: http://localhost:9876
load:
    - src/main/webapp/app/*.js
test:
    - src/test/webapp/unit/*.js

Die Ausgabe des Tests ist:

Total 0 tests (Passed: 0; Fails: 0; Errors: 0) (0,00 ms)
  Chrome 26.0.1410.43 Windows: Run 1 tests (Passed: 0; Fails: 0; Errors 1) (0,00
 ms)
    error loading file: /test/src/test/webapp/unit/utilsSpec.js:1: Uncaught Refe
renceError: describe is not defined

Das liegt also an diesem ersten Verzeichnis "/test/...", der scheint hier überflüssig, ich habe aber keine Ahnung wo dieser Pfad zusammengebaut wird! Weil in der jsTestDriver.conf fängt ja alles mit "src/..." an. Warum wird der "/test/..." hier am Anfang angehängt?

@stefanscheidt
Copy link
Owner

Zu js-fadein:

Danke für den Hinweis auf die fehlerhaften URL. Habe ich korrigiert.

Damit man die UI-Tests ausführen kann, muss man vorher noch den Web-Server starten, der die App bereitstellt. Das habe ich oben bei den vier Schritten vergessen. Also spätestens vor Schritt vier noch mvn jetty:run ausführen.

@stefanscheidt
Copy link
Owner

Zu rylc-tdd:

Die korrekte JsTestDriver-Konfiguration für dieses Projekt steht in der Datei jstd-unit.conf, analog zu js-fadein und schaut wie folgt aus:

server: http://localhost:9876

load:
    # Test-Libraries
    - src/test/webapp/lib/jasmine.js
    - src/test/webapp/lib/JasmineAdapter.js

    # Application
    - src/main/webapp/app/utils.js

test:
    # Tests
    - src/test/webapp/unit/*.js

JsTestDriver ist also wie folgt zu starten:

java -jar misc/JsTestDriver.jar --config jstd-unit.conf --reset --tests all

Klappt das?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants