gpt4 book ai didi

javascript - Jasmine HtmlReporter 调用自身,发现自己未定义

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:09 26 4
gpt4 key购买 nike

我正在测试 Backbone Marionette 应用程序。测试页面由以下脚本组成:

  • Jasmine :<script src="../testing/lib/jasmine-1.3.1/jasmine.js"></script>
  • Jasmine HTML 记者:<script src="../testing/lib/jasmine-1.3.1/jasmine-html.js"></script>
  • 我的规范:<script src="js/app.spec.js"></script>
  • 设置:已复制 window.onload 代码 exactly from the Jasmine github page

奇怪的是,我一直收到这个错误:

Uncaught TypeError: Cannot read property 'SuiteView' of undefined 

我查看了堆栈跟踪。 jasmine.HtmlReporter准备在所有测试完成后输出测试摘要。它调用jasmine.HtmlReporterHelpers.appendToSummary , 其中jasmine.HtmlReporterundefined ,如下面的截图所示。

对象方法找不到自己。这怎么可能发生?

最佳答案

Uncaught TypeError: Cannot read property 'SuiteView' of undefined

SuiteView 是当前正在执行的套件的属性,在本例中是缺失的。 Jasmine 具有以下生命周期:

var jasmineEnv = jasmine.getEnv (); //Initialize Environment
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter (); //Initialize Reporter
jasmineEnv.addReporter (htmlReporter); //Add Reporter
jasmineEnv.execute (); //Start Suite

这是一个完整的脚本:

<script>
function load()
{
var description = location.hash.match(/".+"/).toString().replace(/"/g,"");
var spec = location.hash.match(/function.+}/).toString();
var result = Function("return " + spec)();
var len = jasmine.getEnv().topSuite().children.length;
var test;
var suite;
var suite_name;
var reporter_args;
var reporter_methods;
var i;

test = jasmine.getEnv().it(description, result);
suite = jasmine.getEnv().topSuite().children[len];
reporter_args = jasmine.HtmlReporter.toString().match(/options\.[a-zA-Z]+/g);
reporter_methods = jasmine.HtmlReporter.toString().match(/this\.[a-zA-Z]+/g)
var suite_name = suite.fullname;
for(i = 0; i < len; i++)
{
jasmine.getEnv().topSuite().children.shift();
}
jasmine.getEnv().execute(suite_name);
}
</script>

引用资料

关于javascript - Jasmine HtmlReporter 调用自身,发现自己未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18902073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com