我有一个ruby gem,它添加了一些默认的rake任务。我还有一些基本的集成测试,检查每个任务的rake -T
和rake -AT
的输出。
为了从一些Ruby源代码中解决这些任务,我选择使用PTY.spawn
并将stdout和stderr输出捕获到流。
您可能会看到here on the Travis build:
Failure/Error: Paint.unpaint(out.read)
Errno::EIO:
Input/output error @ io_fread - /dev/pts/1
# ./spec/spec_helper.rb:184:in `read'
# ./spec/spec_helper.rb:184:in `run_command'
# ./spec/rake/test_spec.rb:4:in `block (2 levels) in <top (required)>'
这是我第一次使用Travis CI跑步者,所以我尝试手动要求它也安装了libreadline。我已经更新了bundler,rubygems,并在多个版本的ruby上运行了这个错误。
根据我的一个依赖关系,我测试了MRI 2.2,2.3和2.4。所有这些都在travis上以同样的方式失败了,但也尝试使用chruby在我的本地机器(MacOS)上没有问题。
我错过了什么?