我正在尝试grunt-contrib-qunit
在 Windows 8 上使用 Phantom 以无头模式运行预先存在的 qunit 测试套件(测试 ajax 请求结果的解析)。
在这些情况下,测试完成得很好:
- 在没有Fiddler 或其他代理运行的情况下直接从任何浏览器访问远程页面时
- 当 Phantom 在 Fiddler 打开并运行的情况下从命令提示符运行测试时
奇怪的是,如果我没有打开监视请求的提琴手,我正在测试的 AJAX 请求似乎永远不会初始化。我检查了我的默认 IE LAN 设置并且没有启用代理,我还尝试在那里翻转自动检测设置复选框并且没有任何更改。
有什么想法吗??
关于我的设置的详细信息:
- 节点 v0.10.4
- 最新的
grunt-contrib-qunit
- 视窗 8
- QUnit 分为 4 或 5 个模块,部分模块中有 setup 和 teardown 任务,异步和同步测试,autorun 设置为 false。
更新:
如果我关闭 Fiddler 中的“重用客户端连接”和“重用服务器连接”选项,我似乎会遇到与 Fiddler 关闭时相同的故障行为。这让我相信这是连接被过早关闭的问题,所以我尝试设置一个自定义的 keep-alive 标头——但它仍然出错。
更新 2:
我仍然对此提出质疑,因为页面本身加载正常,但请求失败,但看起来这可能与 NTLM 身份验证有关。Fiddler 可能会以某种方式促进握手。Phantom github 页面上有一个未解决的 NTLM 问题。
更新 3:
在今晚继续进行故障排除后,问题似乎仅与 POST 请求的身份验证有关。GET 请求似乎工作正常。我现在正在通过 ASHX 处理程序路由所有请求并因此删除 auth 组件来解决这个问题。我唯一需要改变的是禁用幻像上的网络安全以允许跨域请求通过。