【发布时间】:2015-02-15 09:28:03
【问题描述】:
我在让 casperjs 测试在执行后退出时遇到问题,我必须点击 CTL-C 才能退出执行。
misc.js
var require = patchRequire(require);
var site = {
goToSite: function (url) {
casper.start(url, function checkSite() {
this.test.assert(this.getCurrentUrl() === url, 'Url is: ' + this.getCurrentUrl());
this.test.assertHttpStatus(200, 'HTTP status code 200 OK');
});
},
login: function () {
casper.then(function fillTheForm() {
this.fill("form[action='/auth/login']", {
'email': 'login@email.com',
'password': 'pass'
}, true);
}
);
}
};
module.exports.site = site;
test.js
var system = require('system');
var misc = require('./misc');
casper.options.logLevel = "debug";
casper.options.verbose = true;
casper.on("resource.error", function(errorCode, errorString, url, id){
this.echo(errorString);
});
casper.on("page.error", function(msg, trace){
this.echo(msg);
});
casper.on("remote.message", function(message){
this.echo(message);
});
casper.test.begin('Cow can moo', 2, function suite(test) {
var url = "http://ym.cms2cms/auth/login";
misc.site.goToSite(url);
misc.site.login();
casper.run(function () {
test.done();
});
});
终端
PASS 网址为:http://ym.cms2cms/auth/login 通过 HTTP 状态码 200 OK PASS 2 个测试在 1.596 秒内执行,2 个通过,0 个失败,0 个可疑,0 个跳过。【问题讨论】:
-
你在windows上吗?您确定必须按 Ctrl+C 而不是直接按 Enter 键吗?
-
我必须按 Ctrl+C,但是当我注释掉这段代码时 //misc.site.login();执行后测试退出
-
添加事件 - 没有任何改变 ... casper.on("resource.error", function(errorCode, errorString, url, id){ this.echo(errorString); }); casper.on("page.error", function(msg, trace){ this.echo(msg); }); casper.on("remote.message", function(message){ this.echo(message); }); @Artjom B
-
类似的问题,奇怪的解决方法:CasperJS: how to exit script execution?
标签: javascript casperjs