1

我编写了一个使用 Braintree Java SDK 的服务器端 Clojure 服务。它会请求创建支付令牌、创建客户、处理通知等。我编写了一套测试,通过调用 Braintree 沙箱来测试所有这些。这一切都很好,直到我尝试在 Travis 上运行测试。

在 Travis 上,至少 50% 的情况下,我的构建会因为超时而失败,并且我已将调用范围缩小到对 Braintree SDK 的第一次调用(在我的情况下是查找客户,但似乎没有不管先叫什么)。代码在那里等待几分钟,等待调用完成。有时它会很快发生,有时 10 分钟过去了,Travis 的工作就放弃了。这在本地永远不会发生。

有谁知道发生了什么?由于它似乎只影响对 Braintree 的第一次调用,也许与握手过程有关?有没有其他人看到这个问题?

4

1 回答 1

1

虽然这是在黑暗中拍摄,但这可能是构建平台缺乏良好熵源的问题,并且您的部分代码和/或依赖项阻止读取随机设备。如果缺少良好的熵源,可以通过安装 haveged 来解决。

为了安装和启动haveged,需要使用apt 插件。请将以下内容添加到您的 .travis.yml 中,看看是否有任何改进:

addons:
  apt:
    packages:
      - haveged 
于 2016-11-24T13:45:36.227 回答