我已经安装了2个Chutzpah Visual Studio插件(使用VS 2015),Context Menu和Test Explorer扩展。我可以右键单击test.js文件并成功运行。我可以从Test Explorer运行测试,测试成功运行。问题是当我右键单击test.html文件时,我收到以下错误。
错误:错误:测试已开始运行时调用start() 在文件的开头:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第2679行) 在startQUnit(第12行) 在onPageLoaded(第16行) (第18行) 运行时:C:\ Users \ byron \ documents \ visual studio 2015 \ Projects \ WebApplication1 \ WebApplication1 \ Tests \ codeSample \ test.html ------测试开始:文件:C:\ Users \ byron \ documents \ visual studio 2015 \ Projects \ WebApplication1 \ WebApplication1 \ Tests \ codeSample \ test.html ------ 错误:TypeError:undefined不是对象(评估' QUnit.jsDump.multiline = false') 登录未定义(第88行) 在文件中的runLoggingCallbacks:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1036行) at logAssertion in file:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(1701行) 在文件中的pushResult:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1672行) 在pushFailure中的文件:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1685行) 在文件中运行:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1430行) 在file:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1620行) 提前在file:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1105行) 在文件开头:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第2796行) 在file:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第2756行) 运行时:C:\ Users \ byron \ documents \ visual studio 2015 \ Projects \ WebApplication1 \ WebApplication1 \ Tests \ codeSample \ test.html 错误:TypeError:undefined不是对象(评估' QUnit.jsDump.multiline = false') 登录未定义(第88行) 在文件中的runLoggingCallbacks:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1036行) at logAssertion in file:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(1701行) 在文件中的pushResult:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1672行) 在pushFailure中的文件:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1685行) 在pushFailure中的文件:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第1822行) at file中的onError:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第2560行) 在文件中的onerror:/// C:/Users/byron/documents/visual%20studio%202015/Projects/WebApplication1/WebApplication1/Tests/Framework/qunit-2.3.2.js(第3844行) 运行时:C:\ Users \ byron \ documents \ visual studio 2015 \ Projects \ WebApplication1 \ WebApplication1 \ Tests \ codeSample \ test.html 错误:执行测试文件时发生超时 运行时:C:\ Users \ byron \ documents \ visual studio 2015 \ Projects \ WebApplication1 \ WebApplication1 \ Tests \ codeSample \ test.html ==========总测试:0通过,0失败,0总==========
我已经使用Chutzpah示例文件进行测试,并添加了一个测试来测试JQuery是否正常工作,这里有文件和Chutzpah.json文件。
的test.html
<html>
<head>
<link rel="stylesheet" href="../Framework/qunit-2.3.2.css" type="text/css" />
<script type="text/javascript" src="../Framework/jquery-3.1.1.js"></script>
<script type="text/javascript" src="../Framework/qunit-2.3.2.js"></script>
<script type="text/javascript" src="code.js"></script>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<h1 id="qunit-header">Unit Tests</h1>
<h2 id="qunit-banner"></h2>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests">
</ol>
<div id="qunit-fixture">test markup, will be hidden</div>
</body>
</html>
test.js
/// <reference path="code.js"/>
QUnit.module("test");
$(document).ready(function() {
QUnit.test("will add 5 to number",
function() {
var res = mathLib.add5(10);
QUnit.assert.equal(res, 15, "should add 5");
});
QUnit.test("test jquery",
function() {
var result = $("#qunit-fixture");
QUnit.assert.ok(result.length > 0);
});
});
code.js
var mathLib = {
add5: function (a) {
return a + 5;
}
}
Chutzpah.json
{
"RootReferencePathMode": "SettingsFileDirectory",
"References": [
{ "Path": "Framework" }
]
}
我的项目文件夹结构:
最终,我需要更新250个JS测试,以便从Visual Studio中运行所有这些测试。目前,所有测试仅通过脚本在TeamCity中运行。
答案 0 :(得分:1)
直接在JS文件上运行时,Chutzpah效果最佳。虽然Chutzpah根据您的设置确实可以处理HTML文件,但您可能需要做更多的工作。在这个例子中,因为你的测试被包装等待文档就绪,我的猜测是QUnit在你的测试注册之前就开始运行了。
你应该让Chutzpah为你生成HTML,因为这样可以减少维护并且更加健壮。
答案 1 :(得分:0)
将QUnit和Chutzpah升级到目前最新版本(分别为2.3.2和4.3.4)后遇到同样的问题。
经过多次尝试后,最终恢复到有效的组合(QUnit 1.18.0和Chutzpah 4.2.2),这解决了问题。