7

私は簡単なJavaScriptゲームを書くことによってグーグルクロージャーツールについて学んでいます。クロージャーライブラリでうまく機能するようにjsTestDriverを設定する方法を理解するのに問題があります。

具体的には、goog.requireメカニズムを使用して、追加のJavaScriptファイルをすべて手動で構成ファイルに追加するのではなく、含めるようにします。

meyerteeの提案に従って、依存関係を構成ファイルに自動的に書き込む簡単なスクリプトを作成しました

#!/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

tests/jsTestDriver.conf.protoファイルは単純なテンプレートです。

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.

これは非常に壊れやすいスクリプトですが、(私以外の)誰かが役立つことを願っています。

4

2 に答える 2

4

Closure Compileにマニフェストファイルを生成させることで、半自動でそれを行うことができます。マニフェストファイルは、すべてのファイルを正しい依存関係の順序で出力します。次に、そのファイルを相対パスに変換して、JsTestDriver構成ファイルに貼り付けることができます。それが私のやり方です。
この変換を自動的に行うスクリプトを作成することもできます。

これは、関連するコンパイラの引数です。

--output_manifest manifest.MF

ClosureCompilerのGoogleCodeWikiにいくつかの詳細があります

編集:依存関係の計算に役立つPythonスクリプト もいくつかあります。calcdeps.pyまたはclosurebuilder.pyを使用して、マニフェストファイルを生成できます。マニフェストファイルには、コードで「必要」とされていないファイルも含まれます。

于 2012-06-03T12:52:33.777 に答える
0

JsTestDriverは、とで依存関係を宣言するクロージャーライブラリの規則に準拠していないため、最善のオプションはmeyerteeのソリューションである可能性があります。goog.provide()goog.require()

ただし、クロージャーライブラリには独自のテストフレームワークが含まれています。見る:

于 2012-06-02T01:36:14.020 に答える