4

我有一个使用 ArcGIS Javascript API 构建的应用程序,并且我一直在使用实习生添加测试。我在开发时在 Windows 7 的 IIS 下运行它。开始时我可以毫无问题地让实习生教程工作,并且在查看了如何为实习生指定备用加载器之后,我能够将 client.html 中的加载器设置为<script src="http://js.arcgis.com/3.7/"></script>并且我能够让我的测试运行,但只有在我更改了路径之后在查询字符串和 intern.js 中包含 IIS 中定义的父路径。

例如,假设我的应用程序托管在http://localhost/testApp/mySitemySite 位置,并且我在 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-geezer 而不是实习生,我能够运行测试。除了一个都通过了(我怀疑这是因为 geezer 不支持 chai 的某些东西),我根本不需要修改路径。client.html 的实习生版本与实习生不同。它不使用要求。

有没有一种方法可以让实习生使用 esri jsapi 而无需更改 client.html 中的加载程序?我也希望以自动化的方式从命令行运行。

4

1 回答 1

2

useLoader从 Intern 1.3 开始,您可以在配置属性中指定替代加载程序,例如来自 Esri 的加载程序。对于 Esri 加载程序,您将使用以下命令:

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

请注意,Esri 使用旧的 Dojo 1 加载程序;如果你想指定额外的dojoConfig标准async: true,等等,dojoConfig在你的配置文件中添加全局对象:

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

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