Ruby gem Diffy不返回差异

时间:2018-09-29 12:26:59

标签: ruby rubygems string-comparison easyhtmlreport

我需要比较两个xml文件并在html报告中显示差异。为此,我安装了红宝石宝石Diffy(以及Diffy文档指示的宝石rspec和diff-lcs),但由于未返回差异而无法正常工作。

我有两个要比较的xmls文件。

Xml文件一:

<?xml version="1.0" encoding="UTF-8"?>
<SourceDetails>
    <Origin>Origin</Origin>
    <Identifier>Identifier</Identifier>
    <Timestamp>2001-12-31T12:00:00</Timestamp>
  </SourceDetails>
  <AsOfDate>2001-01-01</AsOfDate>
  <Instrument>
    <ASXExchangeSecurityIdentifier>ASX</ASXExchangeSecurityIdentifier>
  </Instrument>
  <Rate>0.0</Rate>

Xml文件二:

<?xml version="1.0" encoding="UTF-8"?>
<SourceDetails>
        <Origin>FEED</Origin>
        <Identifier>IR</Identifier>
        <Timestamp>2017-01-01T02:11:01Z</Timestamp>
    </SourceDetails>
    <AsOfDate>2017-01-02</AsOfDate>
    <Instrument>
        <CommonCode>GB0</CommonCode>
    </Instrument>
    <Rate>0.69</Rate>

当我提供两个xml文件作为diffy函数的参数时:

puts Diffy::Diff.new('xmldoc1', 'xmldoc2', :source => 'files').to_s(:html)

不返回任何差异。当我将两个xml文件存储在String变量中并将这些变量作为Diffy函数的参数提供时:

puts Diffy::Diff.new(doc1, doc2, :include_plus_and_minus_in_html => true).to_s(:html)
再次

不会返回任何差异。为了弄清楚我的xml是否是引起问题的原因,我还尝试向Diffy函数提供两个不同的字符串:

puts Diffy::Diff.new("Hello how are you", "Hello how are you\nI'm fine\nThat's great\n")

但是当存在明显差异时,它也不会返回任何内容。

有人知道这个问题可能是什么吗?

0 个答案:

没有答案