javascript – 在实习生中使用ArcGIS JSAPI作为备用加载程序时的测试套件路径

我有一个使用ArcGIS
Javascript API构建的应用程序,我一直在使用实习生添加测试.我在开发过程中在Windows 7的IIS下运行它.我在开始使用
intern tutorial工作时没有遇到任何麻烦,在查看了
How to specify alternate loader for intern后,我能够将client.html中的加载器设置为< script src =“http://js.arcgis.com/3.7/”>< ; /脚本>并且我只能在查询字符串和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库).

我也发现了the esri jsapi version of the intern tutorial,在那个教程中他没有必要更改加载器.
不同之处在于,由于dojo 1.8.3中的错误,他正在使用intern-geezer,但我使用的是esri jsapi 3.7,因此有dojo 1.9.1而且我也不关心旧IE,所以宁愿不使用geezer if我不必.我确实在intern.js中指定了我的包,就像他一样.

我确实拿了我的应用程序的副本并安装了intern-geezer而不是实习生,我能够运行测试.除了一个之外的所有人都通过了(我怀疑这是因为geizer中没有支持chai的东西)而且我根本不需要修改路径. client.html的intern-geezer版本与实习生不同.它不使用require.

有没有办法让我实习与esri jsapi一起工作而不必在client.html中更改加载器?我想以自动方式从命令行运行.

最佳答案 从Intern 1.3开始,您可以在useLoader配置属性中指定替代加载器,例如来自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 … */
    };
});
点赞