我有一个使用ArcGIS Javascript API构建的应用程序,我一直在使用实习生添加测试。我在开发过程中在Windows 7的IIS下运行它。我在开始时intern tutorial工作时遇到了How to specify alternate loader for intern没有问题,在查看the esri jsapi version of the intern tutorial后,我能够将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库)。
我也发现了{{3}},在那个教程中他不必更改加载器。 不同之处在于,由于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中的加载程序?我想以自动方式从命令行运行。
答案 0 :(得分:2)
从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 … */
};
});