如何让Casper JS返回一个表示测试成功状态的退出代码?

use*_*839 6 casperjs

我希望能够有一组Casper JS测试,并在成功时获得退出代码0,在错误或测试失败时获得非零(我想从java运行casper命令并确定测试是否通过).

我遇到的问题是始终返回退出代码0.以下是发生这种情况的示例测试:

var casper = require('casper').create();

casper.start('http://www.google.com', function() {
    this.test.assertEquals(true, casper.cli.options['value']);
});

casper.run(function() {
        casper.test.done(1);
});
Run Code Online (Sandbox Code Playgroud)

以下所有命令都会导致退出代码为0:

C:/casperjs/bin/casperjs test --value=true C:/Temp/simpletest.js
C:/casperjs/bin/casperjs test --value=false C:/Temp/simpletest.js
C:/casperjs/bin/casperjs --value=true C:/Temp/simpletest.js
C:/casperjs/bin/casperjs --value=false C:/Temp/simpletest.js
Run Code Online (Sandbox Code Playgroud)

如何调用Casper并确定测试是成功还是失败/错误?

Hem*_*ela 0

我遇到的问题是总是返回退出代码 0。

你的 casper 测试应该是这样的:

var casper = require('casper').create();
var system = require('system');
var param;

casper.start('http://www.google.com', function() {

    //get parameter from command line
    system.args.forEach(function (arg, i) {
        if(arg.search(/--value=/i) != -1){
            param = arg.replace(/--value=/g, "");
        }
    });    

    this.test.assertEquals(true, Boolean(param));
});

casper.run(function() {
        this.test.done(1); 
        this.test.renderResults(true);
});
Run Code Online (Sandbox Code Playgroud)

跑步:

casperjs simpletest.js --value=true

如何从 Java 调用 Casper 并确定测试是成功还是失败/出错?

你应该看看这个答案:

CasperJS 将数据传回 PHP