gpt4 book ai didi

casperjs - 如何让 Casper JS 返回指示测试成功状态的退出代码?

转载 作者:行者123 更新时间:2023-12-04 15:59:08 25 4
gpt4 key购买 nike

我希望能够拥有一组 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);
});

以下所有命令都会导致退出代码为 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

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

最佳答案

首先,您不能在测试模式下覆盖 casper 实例,请参阅 http://docs.casperjs.org/en/latest/testing.html#test-command-args-and-options

消除

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

从你的代码。

然后试试

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

启动 casperjs
--fail-fast

这样每个测试都会以代码 1 退出。

然后在Java中

String[] args = {"/bin/sh", "-c", "casperjs test --fail-fast simpletest.js"};

Process proc = Runtime.getRuntime().exec(args);

logger.log(Level.INFO, IOUtils.toString(proc.getInputStream()));
String warnings = IOUtils.toString(proc.getErrorStream());

if (StringUtils.isNotBlank(warnings)) {
logger.log(Level.WARNING, warnings);
}

int exitValue = proc.exitValue();

assertEquals(0, exitValue);

当然,您需要更改路径以适合您的环境。

希望有帮助!

关于casperjs - 如何让 Casper JS 返回指示测试成功状态的退出代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17176452/

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