QUnit失败了grunt,在浏览器中传递

时间:2014-01-28 08:04:25

标签: javascript unit-testing gruntjs qunit grunt-contrib-qunit

在我正在开发的脚本中,我检查变量是否为instanceof HTMLAudioElement。当我通过grunt任务运行QUnit时,它以

失败
>> Message: Died on test #1     at file:///path/test/lib/qunit.js:425
>>     at file:///path/test/all.js:24: Can't find variable: HTMLAudioElement
>> ReferenceError: Can't find variable: HTMLAudioElement

all.js实际上并没有引用HTMLAudioElement本身,只是在我的主脚本中调用了一些可以使用它的代码。

当我在Firefox,Chrome或Safari中打开all.html时,所有测试都会通过。

这是预期的行为吗?它是否使用某种没有该构造函数的浏览器仿真?这是否意味着我的代码在某些浏览器中会失败,或者这只是错误的配置并没有告诉我任何有用的东西?我该如何解决?

1 个答案:

答案 0 :(得分:4)

对不起朋友,但根据their website,PhantomJS不支持HTML5 audiovideo元素,因此HTMLAudioElement构造函数将不存在。

您可以通过围绕该代码检查与不支持的浏览器的兼容性,使用Modernizr之类的内容来验证您的测试吗?