BrowserStackLocal因消息Disconnected而异常

时间:2017-11-20 10:16:44

标签: php codeception acceptance-testing browserstack

我尝试使用codeception和browserstack进行测试。

  1. 克隆此回购https://github.com/browserstack/codeception-browserstack
  2. 在本地测试中下载插件browserstacklocal.exe
  3. 使用我的密钥
  4. 运行browserstacklocal.exe
  5. 运行本地测试
  6. 出现此错误http://petrvolny.eu/error.png

2 个答案:

答案 0 :(得分:0)

我还没有使用过BrowserStack,但我做了一个快速搜索 - 消息BrowserStack\LocalException的{​​{1}}看起来不对。

D可能是真正异常消息的第一个字母。

此问题可能由以下代码引起:https://github.com/browserstack/browserstack-local-php/blob/491c6e31960ce8111d2cb70cb84d03e73f270dbb/lib/Local.php#L125

D

过去曾是throw new LocalException($data['message']['message']); ,但一年前发生了变化: https://github.com/browserstack/browserstack-local-php/pull/11/files

我的建议是修改$data['message'] 并将该行更改为vendor/browserstack/browserstack-local/lib/Local.php以查看其根本原因。

答案 1 :(得分:0)

事实证明,日志记录是问题所在,在库源中删除--log-file后,它可以正常工作。另外,请确保您提供了密钥。

我知道您正在使用PHP,但是对于将Javacsript与node一起使用的人,这里有一个小补丁:

let fs = require('fs');
const file = 'node_modules/browserstack-local/lib/Local.js';

fs.readFile(file, 'utf8', function(err, contents) {
  var result = contents.replace("['--daemon', this.opcode, '--log-file', this.logfile]", "['--daemon', this.opcode]");
  fs.writeFile(file, result);
});

希望这会有所帮助!我知道编辑库源代码不好,但是我发现它可以解决问题。