pil*_*ice 1 javascript casperjs
任何人都知道如何在casperjs中找出这个错误的原因?我试图在运行时运行的测试脚本是:
var errors = [];
casper.on("page.error", function(msg, trace) {
this.echo("Error: " + msg, "ERROR");
this.echo("file: " + trace[0].file, "WARNING");
this.echo("line: " + trace[0].line, "WARNING");
this.echo("function: " + trace[0]["function"], "WARNING");
errors.push(msg);
});
casper.on('resource.received', function(resource) {
var status = resource.status;
if(status >= 400) {
casper.log('Resource ' + resource.url + ' failed to load (' + status + ')', 'error');
errors.push({
url: resource.url,
status: resource.status
});
}
});
casper.test.begin('Are we online?', 3, function suite(test) {
casper.start("http://www.google.com/", function() {
test.assertTitle("Google", "Connected to google, internet connection probably ok");
});
casper.thenOpen("https://mysite", function() {
test.assertTitle("Log On", "Connected to mysite, server is up");
this.fill('form#logonForm', {
'Name': 'user',
'Password': 'pass',
}, true);
});
casper.thenOpen("https://mysite/somepage", function() {
casper.test.assert(errors.length==0,'No js errors'); //THIS LINE SEEMS TO BE CAUSING THIS ERROR, NOT SURE WHY?
});
casper.run(function () {
test.done();
});
});
Run Code Online (Sandbox Code Playgroud)
完整,完整的错误消息是:
1个失败测试的详细信息:在connect-to-production.js:1968(没有这样的行,我的js文件只有我粘贴在其上面的行,远不到2000行)
我们在线吗?(我的测试名称)uncaughtError:TypeError:尝试分配给readOnly属性.
在此之上它不像正常错误那样表现并且没有堆叠痕迹.
找到了答案.
如果您有一个测试套件,如:casper.test.begin('我们在线吗?',4,功能套件(测试){
这意味着你必须在套件中准确地进行4次测试.如果您添加或删除任何断言,您将收到此错误!
我是casperjs的新手,感谢Artjom B指出我如何在这个我不习惯的环境中进行调试.