CasperJS测试在执行后不会返回

时间:2015-02-15 09:28:04

标签: javascript casperjs

我在执行后让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 Url is: http://ym.cms2cms/auth/login
PASS HTTP status code 200 OK
PASS 2 tests executed in 1.596s, 2 passed, 0 failed, 0 dubious, 0 skipped.

http://screencast.com/t/5ZmTZLK3C5Bk

1 个答案:

答案 0 :(得分:0)

从调用测试中删除号码,如下所示:

casper.test.begin('Cow can moo', function suite(test) {

根据Casper JS Api,它指的是计划的数字,你只用1个测试指定2。我发现删除它总体上运作良好,并且只指定是否需要。

来自doco的注意事项:如果给定的测试脚本突然中断,计划的参数特别有用,让您没有明显的方法来了解它并且错误地成功了。