- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我快速浏览了一下 QUnit ,一个用于单元测试 JavaScript 的框架。我的目的是使用 QUnit 调试复杂的网站行为。
然而,默认情况下,QUnit 的所有输出似乎都在 DOM 树中生成。因此,在运行单元测试时,任何在 DOM 树上运行的测试中的 JavaScript 都可能表现不同。我的意思是,真正的网站不会有 QUnit 的输出部分。
我找到了一些方法将结果输出到浏览器的控制台:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>QUnit Example</title>
<!-- not needed <link rel="stylesheet" href="qunit-1.15.0.css"> -->
<style>
#test {
background-color: #ff9900;
}
</style>
</head>
<body>
<!-- not needed...
<div id="qunit"></div>
<div id="qunit-fixture"></div>
-->
<script src="qunit-1.15.0.js"></script>
<script src="tests.js"></script>
<div id="testdiv">My normal DOM DATA</div>
</body>
</html>
在我的 tests.js 中,我有以下代码片段:
QUnit.log(function( details ) {
console.log( "QUnit: '" + details.name + "' = "
+ (details.result ? "PASS" : "FAIL, " + "'"+details.message+"'"));
});
这行得通。然而,我目前对这个快速而肮脏的解决方案的开放问题是:
我需要打开浏览器的控制台。当所有测试完成(汇总所有结果)时,现有解决方案可能会生成 alert()
。调整上述代码以针对单个失败/通过的测试发送 alert()
是微不足道的(但请参阅问题 3)。
我无法启用“noglobals”检查功能,我发现它非常方便。/意思是,我找不到如何通过 JavaScript API 设置它。
我想知道是否有任何现有/官方解决方案(所以我不必重新发明轮子)。
最佳答案
所以,首先,对 JavaScript 进行单元测试吧!由于您强调的许多原因,这是经常避免的事情,所以很高兴看到您正在努力。
QUnit 必须在浏览器中运行。还有其他 JS 测试库不是绝对必须(例如 Mocha),但在测试网站代码时并非如此(主要用于测试 Node)。如果你想测试你的网站 JS 代码,你需要在浏览器上下文中。但更重要的是,不,您不需要在浏览器中查看 QUnit 结果。
查看输出的最简单方法很可能是使用自动化工具,尽管这不是设置起来最快的方法。例如,您可以使用 Grunt和 QUnit plugin for Grunt ,它使用 PhantomJS 作为浏览器,自动运行测试并在终端(不是浏览器 JS 控制台,而是 Linux/Mac/Windows 终端)中查看输出。 Grunt 还可以用于 Jenkins、Travis 或 TeamCity 等持续集成工具。
事实上,QUnit 使您能够在测试运行后获得所有结果,并根据需要对它们进行任何操作。因此,您可以编写自己的代码来处理结果并对其进行处理(例如发送到 ajax 端点以进行报告):
var log = [];
// set up a handler to capture the output from QUnit.log()
// then put that output into the array above for reporting later
QUnit.testStart(function(testDetails){
QUnit.log(function(details){
if (!details.result) {
details.name = testDetails.name;
log.push(details);
}
});
});
// set up a callback for when the entire test suite is complete
QUnit.done(function (totals) {
// do whatever you need to in here with the totals (http://api.qunitjs.com/QUnit.done/)
// and with the individual test `log` array
});
因此,具体回答您的问题:
window.alert(...)
挂接到 QUnit.done()
回调...但我认为您会更好使用自动化解决方案。noglobals
开关,但您可以简单地将其附加到测试文件的 URL 上:http://localhost:1234/tests/index.html?noglobals=true
祝你好运!
关于javascript - QUnit:有没有在网站 DOM 树中不输出结果的官方解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26546362/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
在现代 IDE 中,有一个键盘快捷键可以通过键入文件名称来打开文件,而无需将手放在鼠标上。例如: Eclipse:Cmd|Ctrl + Shift + R -> 打开资源 IntelliJ:Cmd|C
有什么东西会等待事件发生(我正在等待的是 WebBrowser.DocumentCompleted),然后执行代码吗?像这样: If (WebBrowser.DocumentCompleted) 不会
我使用 PHP Minify,它很棒。但我的问题是,是否有任何 PHP 插件或其他东西可以自动检测 javascript/css 代码并自动缩小它?谢谢。 最佳答案 Javascript 压缩器? 看
有没有一种语言,类似什么CoffeeScript是JavaScript,编译成windows batch|cmd|command line的语言? 我指的cmd版本是基于NT的,尤其是XP sp3及以
我知道我可以 ,但是,我真的宁愿有一个任务,我可以从任何可以使用所有(或至少大部分)属性的操作系统调用 copy ,但这并没有消除 unix 上的权限。 我想知道是否已经有解决方案,或者我必须自己编
我正在使用 Vuejs(不使用 jQuery)开发一个项目,该项目需要像 jvectormap 这样的 map 但正如我所说,我没有使用 jQuery,那么是否有任何其他库可以在不使用 jQuery
想要进行一个简单的民意调查,甚至不需要基于 cookie,我不在乎投了多少票。有没有类似的插件或者简单的东西? 最佳答案 这是一个有用的教程 - 让我知道它是否适合您 using jQuery to
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
var FileBuff: TBytes; Pattern: TBytes; begin FileBuff := filetobytes(filename); Result := Co
我想要一个 vqmod xml 文件来添加一次上传多个图像的功能。身边有这样的事吗? 编辑:Opencart版本:2.1.0.1 最佳答案 最后我写了一个xml来添加到opencart 2.1.0.1
所以考虑这样的函数: public void setTemperature(double newTemperatureValue, TemperatureUnit unit) 其中Temperatur
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我是 ggplot2 的新手,一直在尝试找到一个全面的美学列表。我想我理解它们的目的,但很难知道哪些可以在各种情况下使用(主要是几何图形?)。 Hadley 的网站偶尔会在各个几何图形的页面上列出可用
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
是否有任何 PHP 函数可以将整数转换为十万和千万? 900800 -> 9,00,800 500800 -> 5,00,800 最佳答案 由于您已在问题标签中添加了 Yii,因此您可以按照 Yii
使用 Clojure 一段时间后,我积累了一些关于它的惰性的知识。我知道诸如map之类的常用API是否是惰性的。然而,当我开始使用一个不熟悉的API(例如with-open)时,我仍然感到怀疑。 是否
我的项目需要一个像 AvalonDock 这样的对接系统,但它的最后一次更新似乎是在 2013 年 6 月。是否有更多...积极开发的东西可以代替它? 最佳答案 AvalonDock 实际上相当成熟并
我正在寻找一个可以逆转 clojure 打嗝的函数 所以 turns into [:html] 等等 根据@kotarak的回答,这现在对我有用: (use 'net.cgrand.enliv
我是一名优秀的程序员,十分优秀!