问题标签 [grunt-contrib-qunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
phantomjs - 通过 grunt (qunit) 为 PhantomJS 配置代理
我正在尝试通过grunt-contrib-qunit运行集成测试。我已经--proxy
通过对象设置了标志options
,每个 ajax 请求都返回一个 404(未找到)错误。
Gruntfile.js
QUnit 测试本身在最简单的 AJAX 请求上失败,并出现 404:
测试/index.html
失败:
值得注意的是,显式引用主机 ( url: 'http://192.168.1.1:8080/svc/version'
) 可以正常工作,因此这不是同源问题。
参考:grunt-contrib-qunit,PhantomJS,grunt-lib-phantomjs,SO“PhantomJS 中的代理”
node.js - AJAX 请求的 QUnit 和 PhantomJS 测试只能通过代理工作
我正在尝试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 组件来解决这个问题。我唯一需要改变的是禁用幻像上的网络安全以允许跨域请求通过。
phantomjs - grunt qunit 与 grunt 服务器一起使用
在运行grunt server
开发时,如何单独使用grunt qunit
任务来运行测试。尝试传递["test/**/*.html"]
给all
属性时,但无法运行并返回 ( Warning: 0/0 assertions ran (0ms) Use
)
看起来,它不会触发 phantomjs 实例,也不会找到这些补丁。所以我尝试了以下
它仅在手动包含所有测试 html 页面时才有效(如示例中所示)。
问题是我的问题是,即使在使用 grunt 服务器时 grunt qUnit 也能正常工作。我怎样才能让["test/**/*.html"]
语法正常工作。我相信一定有更好的方法可以工作!此外,如何使用 grunt.file.expand 以编程方式添加匹配文件以在 grunt qunit 任务中运行。
gruntjs - Grunt qunit 失败了
我已经配置了我的 qunit 任务,如下所示:
jsHint 运行良好。但是使用 qunit 我收到错误:
运行“qunit:ac”(qunit)任务警告:不能使用“in”运算符搜索“src”
javascript - 在 QUnit 测试中设置 PhantomJS viewportSize
我需要以不同的视口大小测试我的脚本。在我的测试中,我想通过设置 page.viewportSize 来更改 PhantomJS 的视口大小。我正在通过 grunt-contrib-qunit 运行我的测试,而我的测试代码中无法访问 PhantomJS。有没有办法访问它?
javascript - 即使某项任务失败,也可以继续执行某些任务
有没有办法配置一系列任务,以便特定的后续任务(我不希望 --force 在整个批次上运行)即使一个失败也能运行?例如,考虑这样的情况
- 创建一些临时文件
- 运行一些涉及这些临时文件的单元测试
- 清理那些临时文件
我可以做这个:
但如果 qunit 失败,则 removeTempFiles 任务永远不会运行。
phantomjs - PhantomJS、Qunit、Grunt 测试浏览器调整小部件的大小
我创建了一个jQuery UI Widget
调整 DIV/事物大小以填满浏览器屏幕的方法。一切正常,但现在我想创建unit tests
以测试它正在调整大小并保持边界等。
我正在使用Grunt
with grunt-contrib-qunit
,它用于PhantomJS
进行测试,但现在不确定如何测试浏览器调整大小,因为无法通过 JS 调整浏览器大小。也许 PhantomJS 提供了一些允许我在运行时更改它的东西?
javascript - 对象中存在 Qunit 测试属性
我Qunit
在 JavaScript 中使用测试引擎,我需要检查对象中是否存在属性。
这是我的设置:
该函数validate_foo()
要么在成功时返回一个空对象,要么返回一个{}
包含每个错误属性的对象。例如,validate_foo()
期望foo
equalfoo
和bar
to equal bar
。所以在第二次测试中,结果是:
我如何编写一个测试来完成这个?
gruntjs - 使用 grunts 运行的 qunit 测试 grunt-contrib-qunit 在默认测试文件夹之外失败
我可以运行 qunit 测试的唯一地方是 html 和 js 文件是否位于 grunt-contrib-qunit\test 文件夹中,遵循https://github.com/gruntjs/grunt-contrib-qunit上的此信息
该测试文件夹之外的任何内容,例如将“测试”文件夹作为项目根目录的一部分,都不起作用。
在调试模式下运行 (grunt qunit:defaultTests --debug) phantomJS 将超时,我可以看到“onResourceRequested”不包括 qunit css 或 js 文件,或者 js 文件测试,它只报告 html 文件。
有人可以告诉我他们如何在不使用 contrib-qunit\test 文件夹的情况下进行设置,或者需要进行哪些更改,因为我只能运行该文件夹中的文件。
jquery - 如何使用日志语句调试 Gruntfile.js?
在我的 Gruntfile 中,如何将日志语句添加到其处理中,如下例所示?