我有一个使用 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 位置,并且我在 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 中的加载程序?我也希望以自动化的方式从命令行运行。