4

ArcGIS Javascript API を使用して構築されたアプリケーションがあり、インターンを使用してテストを追加しています。開発中に Windows 7 の IIS で実行します。開始時にインターンチュートリアルを機能させるのに問題はありませんでした。インターンに代替ローダーを指定する方法を見た後、client.htmlでローダーを設定<script src="http://js.arcgis.com/3.7/"></script>でき、パスを変更した後でのみテストを実行できましたクエリ文字列と intern.js の両方に、IIS で定義されている親パスを含めます。

たとえば、私のアプリが でホストhttp://localhost/testApp/mySiteされていて、mySite の場所に js、css、tests、および node_modules フォルダーが定義されているとします。テストを実行するには、構成の場所の前にhttp://localhost/testApps/mySite/node_modules/intern/client.html?config=mySite/tests/intern追加する必要があります。mySite同様に、私の構成では、スイートを次のように定義する必要がありました。

suites: [
    'mySite/tests/suite1',
    'mySite/tests/suite2',
    'mySite/tests/suite3'
],

client.html で別のローダーを使用するようにスクリプト タグを変更せず、node_modules で dojo のバージョンを使用する場合、追加のパスは必要ありません (ただし、esri ライブラリは見つかりません)。

それ以来、インターン チュートリアルの esri jsapi バージョンも見つけました。そのチュートリアルでは、ローダーを変更する必要はありません。違いは、dojo 1.8.3 のバグのために彼が intern-geezer を使用していることですが、私は esri jsapi 3.7 を使用しているため、dojo 1.9.1 を使用しており、古い IE も気にしないので、私はする必要はありません。彼と同じように、intern.js でパッケージを指定しました。

アプリのコピーを取り、intern の代わりに intern-geezer をインストールしたところ、テストを実行できました。1つを除いてすべて合格し(チャイの何かがgeezerでサポートされていないためだと思われます)、パスをまったく変更する必要はありませんでした。client.html の intern-geezer バージョンは、intern のものとは異なります。require は使用しません。

client.html のローダーを変更せずに、インターンが esri jsapi を操作できるようにする方法はありますか? コマンドラインからも自動化された方法でこれを実行したいと思います。

4

1 に答える 1

2

useLoaderIntern 1.3 では、構成プロパティで、Esri のローダーなどの代替ローダーを指定できます。Esri ローダーの場合、これを使用します。

// intern.js
define({
    /* … other configuration options … */
    useLoader: { 'host-browser': 'http://js.arcgis.com/3.7/' }
    /* … */
});

Esri は古い Dojo 1 ローダーを使用していることに注意してください。などの追加のdojoConfig条件を指定する場合は、構成ファイル内にグローバル オブジェクトを追加します。async: truedojoConfig

define([], function () {
    this.dojoConfig = { async: 1 };

    return {
        /* … configuration … */
    };
});
于 2013-11-18T03:21:52.703 に答える