当我提供Chutzpah.json文件时,我遇到了让Chutzpah运行我的打字稿测试的问题。
我的项目如下:
我的Chutzpah.json文件如下所示:
{
"Compile": {
"Mode": "External",
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"Tests": [
{ "Include": "**/**.ts","Exclude": "**/**.d.ts" }
],
"References": [
{"Include": "../../hacapp.web/**/*.ts", "Exclude": "../../hacapp.web/**/**.d.ts" }
]
}
当我使用这个Chutzpah.json文件运行时,执行0测试。使用以下参数运行命令行运行器的输出:
chutzpah.consle.exe / path \ hacapp.web \ hacapp.web.Tests \ Scrpts \ TypescriptTests.ts / trace / debug
生成的html文件的内容似乎不包含对TypescriptTests.js文件的任何引用:
<head>
<meta charset="utf-8" />
<title>QUnit Tests</title>
<link rel="stylesheet" type="text/css" href="file:///C:/Users/sam/Source/Repos/chutzpah-master/ConsoleRunner/bin/Debug/TestFiles/QUnit/qunit.css"/>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/chutzpah-master/ConsoleRunner/bin/Debug/TestFiles/QUnit/qunit.js"></script>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/haccpapp/hacapp.web/hacapp.web/scripts/jquery-1.10.2.js"></script>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/haccpapp/hacapp.web/hacapp.web/scripts/knockout-3.0.0.js"></script>
<script>
var amdTestPath = "";
if (window.require && typeof window.require === "function" && amdTestPath !== "") {
if (window.chutzpah) {
window.chutzpah.usingModuleLoader = true;
}
requirejs.config({
map: {
'*': {
}
}
});
window.QUnit.config.autostart = false;
window.require([amdTestPath], function () {
console.log("!!_!! Starting QUnit from inline AMD call...");
if (!window._Chutzpah_covobj_name) {
window.QUnit.start();
}
});
}
</script>
</head>
如果我重命名Chutzpah.json文件以便不再使用它,然后再次运行命令行工具,那么这次运行测试和this is in the log file,这就是html的样子:
<head>
<meta charset="utf-8" />
<title>QUnit Tests</title>
<link rel="stylesheet" type="text/css" href="file:///C:/Users/sam/Source/Repos/chutzpah-master/ConsoleRunner/bin/Debug/TestFiles/QUnit/qunit.css"/>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/chutzpah-master/ConsoleRunner/bin/Debug/TestFiles/QUnit/qunit.js"></script>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/haccpapp/hacapp.web/hacapp.web/scripts/Workflow/_Chutzpah.1.WFDefinition.js"></script>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/haccpapp/hacapp.web/hacapp.web/scripts/jquery-1.10.2.js"></script>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/haccpapp/hacapp.web/hacapp.web/scripts/knockout-3.0.0.js"></script>
<script type="text/javascript" src="file:///C:/Users/sam/Source/Repos/haccpapp/hacapp.web/hacapp.web.Tests/Scripts/_Chutzpah.1.TypescriptTests.js"></script>
<script>
var amdTestPath = "";
if (window.require && typeof window.require === "function" && amdTestPath !== "") {
if (window.chutzpah) {
window.chutzpah.usingModuleLoader = true;
}
requirejs.config({
map: {
'*': {
}
}
});
window.QUnit.config.autostart = false;
window.require([amdTestPath], function () {
console.log("!!_!! Starting QUnit from inline AMD call...");
if (!window._Chutzpah_covobj_name) {
window.QUnit.start();
}
});
}
</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"></div>
</body>
</html>
我在配置方面做错了什么?
答案 0 :(得分:6)
更新的答案
我根据给出的完整repro更新答案。原始答案保留在下面。
问题是默认情况下chutzpah会将sourcedirectory设置为查找生成的脚本到chutzpah.json文件的位置。将其设置为源文件夹和测试文件夹的父级可以解决问题
{
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ],
"SourceDirectory": "../../",
"OutDirectory": "../../"
},
"Tests": [
{ "Include": "*/*.ts","Exclude": "*/*.d.ts" }
],
"References": [
{"Include": "../../ChutzpaWeb/*/*.ts", "Exclude": "../../ChutzpaWeb/*/*.d.ts" }
]
}
原始回答
如果没有完整的复制品,我无法确认这是否能解决您的问题,但我确实解决了几个问题。
{
"Compile": {
"Mode": "External",
"Extensions": [ ".ts" ],
"ExtensionsWithNoOutput": [ ".d.ts" ]
},
"Tests": [
{ "Include": "*/*.ts","Exclude": "*/*.d.ts" }
],
"References": [
{"Include": "../../hacapp.web/*/*.ts", "Exclude": "../../hacapp.web/*/*.d.ts" }
]
}
如果有帮助,请告诉我。