我遇到了一些麻烦,让Chutzpah使用requireJs/Jasmin2.0。这个方法适用于1.3版本,但现在对于Jasmin2.0版本来说,chutzpah已经停止了测试。我也将jasmin2.0支持的chutzpah升级到3.1.1。为了使其工作,我确实需要做一些小小的更改来从requireJs加载jasmine,但我认为这不应该影响chutzpah,因为它只是加载html。
这是我对chutzpah的命令。
chutzpah.console.exe path/to/SpecRunner.html控制台现在无法接收测试。
=== 0 total, 0 failed, took 0.25 seconds ===但是当我运行实际的html文件时,它会找到测试。

任何帮助都将不胜感激。
而不是HTML路径,我一直在尝试配置中内置的chutzpah
{
"Framework": "jasmine",
"TestHarnessReferenceMode": "AMD",
"TestHarnessLocationMode": "SettingsFileAdjacent",
"Tests": [
{"Path" : "Specs/example.spec.js"},
],
"References" : [
{"Path" : "../../../Scripts/lib/require/require.js" },
{"Path" : "../../../Scripts/app/app.js" }
]
}不管怎么说,这都是个错误
Error: Error: Script error for: specs/example.spec
Error: Timeout occured when executing test file
While Running:C:\path\to\specs\example.spec.js
System.AggregateException: One or more errors occurred.
---> System.NullReferenceException: Object reference not set to an instance of an object.
at Chutzpah.FileProbe.<FindScriptFiles>d__1a.MoveNext() in c:\Dev\chutzpah\Chutzpah\FileProbe.cs:line 159这里的路径是绝对正确的,因为我复制并粘贴到一个资源管理器窗口只是为了确保。
测试是一个简单的编译coffeescript文件,如下所示
(function() {
define([], function() {
return describe('==== example test ====', function() {
return describe('the test should', function() {
return it('showcase toBe', function() {
return expect(true).toBe(true);
});
});
});
});
}).call(this);我敢肯定,这是因为它传递给我的浏览器,基于html的等值。
这是我最后一次使用html的配置。我无法让它只使用发现测试的配置。希望当第214项得到解决时,这一问题将得到解决,如下所示。
{
"Framework": "jasmine",
"RootReferencePathMode": "SettingsFileDirectory",
"TestHarnessReferenceMode": "AMD",
"TestHarnessLocationMode": "SettingsFileAdjacent",
"Tests": [
{ "Path" : "specrunner.html" }
],
"References" : [
{"Path" : "../../../Scripts/lib/require/require.js" },
{"Path" : "../../../Scripts/app/app.js" }
]
}发布于 2014-03-02 05:36:46
我查看了你的代码,下面是我发现的
运行HTML
如果你做了几个小的改变,这就很好了。1. chutzpah.json文件中的测试设置有一个后缀逗号。这暴露了反序列化器将其作为空项返回的错误,chutzpah没有处理它。我会解决这个问题,但你可以删除额外的逗号。2.删除该命令后,我看到您的chutzpah.json文件有一个测试设置,它只列出了.js文件。但是当运行html文件时,这就是您的测试文件。所以你的chutzpah.json会过滤掉它。如果您将测试设置更新为指向html文件,则此操作有效。
一旦我做了这些更改,测试就成功运行了。
运行Chutzpah.json
通过在example.spec中加载SpecRunner的方式,您可以在require中引用.js扩展。这告诉require.js忽略baseurl并查看相对于当前位置的文件。当您有chutzpah生成测试工具时,它会生成一个没有扩展的请求调用。这意味着在给定当前基url设置的情况下,文件需要能够加载。
现在,在chutzpah中有一个bug,它不了解baseurls。见https://chutzpah.codeplex.com/workitem/214。计划中的解决方案是允许您告诉chutzpah.json文件中的chutzpah您的baseurl是什么。没有这一点,仍然可以让它工作,但是您需要告诉chutzpah将生成的.html文件放置在基url所指向的位置。
如果这有帮助的话请告诉我。
发布于 2015-04-04 03:25:17
我有一个类似的问题,在你的,没有一个测试是由胆小鬼。我发现,由于我使用的是require.js,所以从jasmine.js中删除了对jasmine.js的所有脚本引用。我一放回去
<!--<script src="jasmine.js"></script>-->
进入我的specRunner.html,一切正常。尽管脚本标记已经被注释掉了,而且路径甚至不正确,但这还是起了作用。我的猜测是,如果您没有配置Chutzpah.json,那么chutzpah将只扫描您要运行的文件,看看它是什么。如果它能够找到jasmine的脚本标记(即使它被注释掉了),它就知道它是一个jasmine运行程序,并执行一些特定于茉莉花的代码。
https://stackoverflow.com/questions/22091500
复制相似问题