Minitest 5.6.0 中断了使用 OpenStruct 模拟的 JSON/XML 响应的测试

Minitest 5.6.0 breaks tests with JSON/XML responses mocked with OpenStruct

昨天我的 CI 系统启动了 a-smokin' 和 a-screamin' 并且许多错误都是这样的:

--- expected
+++ actual
@@ -1 +1 @@
-"<chart><series name=\"Lineups\"><name>56</name><name>614</name><name>0</name></series></chart>"
+"<chart><series name=\"Lineups\"><name>#&lt;struct Minitest::Expectation target=nil, ctx=#&lt;OpenStruct name=\"match day #abc\", value=56&gt;&gt;</name><name>#&lt;struct Minitest::Expectation target=nil, ctx=#&lt;OpenStruct name=\"match day #def\", value=614&gt;&gt;</name><name>#&lt;struct Minitest::Expectation target=nil, ctx=#&lt;OpenStruct name=\"match day #012\", value=0&gt;&gt;</name></series></chart>"

请注意,预期值已替换为 Minitest::Expectation target=nil。此案例的测试是构建一些示例输入:

def build_sample_input
  [
    OpenStruct.new(
      :name   => "match day #abc",
      :value  => 56
    ),
    ...
  ]
end

正在测试的代码使用 Nokogiri 的输入并构建一些 XML 输出。

builder = Nokogiri::XML::Builder.new do |xml|
  process_source(xml)
end

def process_source(xml)
  xml.chart do
    xml.show_graph_ false
    xml.type_ 'line'
    xml.orientation_ 'vertical'
    xml.description_ 'Unique Lineup Selections'
    xml.categories do
     input.each do |match_day|
        xml.name_ match_day.name
     end
    end
    xml.series('name' => 'Lineups') do
      input.each do |match_day|
        xml.name_ match_day.value
      end
    end
  end
end

还有其他人 运行 参与其中吗?我知道这很具体。错误报告是 here

运行 标记 MT_NO_EXPECTATIONS=1 有效,但我认为已经有一个补丁。