7 Stimmen

Verwendung der Closure-Bibliothek mit jsTestDriver

Ich lerne über Google Closure Tools, indem ich ein einfaches JavaScript-Spiel schreibe. Ich habe Schwierigkeiten, herauszufinden, wie man jsTestDriver einrichten, so dass es gut mit Schließung Bibliothek funktioniert.

Konkret: Ich möchte den goog.require-Mechanismus verwenden, um zusätzliche JavaScript-Dateien einzuschließen, anstatt sie alle manuell zur Konfigurationsdatei hinzufügen zu müssen.

Dem Vorschlag von meyertee folgend habe ich ein einfaches Skript erstellt, das die Abhängigkeiten automatisch in eine Konfigurationsdatei schreibt

#!/bin/bash
cp tests/jsTestDriver.conf.proto tests/jsTestDriver.conf
libs/closure-library/closure/bin/build/closurebuilder.py --root="./libs/closure-library" --root="./js" --namespace="lds" | sed "s#^#  - \.\./#" >> tests/jsTestDriver.conf

Die Datei tests/jsTestDriver.conf.proto ist eine einfache Vorlage:

test:
  - "*.js"
load:
  - ../libs/knockout-2.1.0.js
# Crucial, the load key needs to be last, and this comment must be followed by a newline.

Es ist ein sehr anfälliges Skript, aber hoffentlich findet es jemand (außer mir) nützlich.

4voto

meyertee Punkte 2071

Sie können dies halbautomatisch tun, indem Sie Closure Compile eine Manifestdatei erzeugen lassen, die alle Dateien in der richtigen Reihenfolge der Abhängigkeiten ausgibt. Sie können diese Datei dann in relative Pfade umwandeln und sie in die JsTestDriver-Konfigurationsdatei einfügen. So mache ich es.
Sie könnten sogar ein Skript schreiben, das diese Umwandlung automatisch vornimmt.

Dies ist das relevante Compiler-Argument:

--output_manifest manifest.MF

Es gibt einige Details über die Closure Compiler's Google Code Wiki

Edita: Es gibt auch einige Python-Skripte um Ihnen bei der Berechnung der Abhängigkeiten zu helfen. Sie können calcdeps.py oder closurebuilder.py verwenden, um eine Manifestdatei zu erzeugen, die auch Dateien enthält, die von Ihrem Code nicht "benötigt" werden.

0voto

Christopher Peisert Punkte 18347

Seit JsTestDriver folgt nicht der Schließung der Bibliothek Konvention der Deklaration von Abhängigkeiten mit goog.provide() y goog.require() ist Ihre beste Option möglicherweise meyertee's Lösung.

Die Closure Library enthält jedoch einen eigenen Testrahmen. Siehe:

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X