Test-HTML-Differences
というのを書いてみました。
一旦 normalize してから HTML を比較し、テストに失敗した場合は Test::Differences 使ったときのようになります。
# Failed test 'test' # at t/lib/Text/Xatena/Test.pm line 40. # +----+---------------------------+---------------------------+ # | Elt|Got |Expected | # +----+---------------------------+---------------------------+ # | 0|<root> |<root> | # | 1| <div class="section"> | <div class="section"> | # | 2| <h3>head</h3> | <h3>head</h3> | # | 3| <p>foobar</p> | <p>foobar</p> | # | 4| <div class="seemore"> | <div class="seemore"> | # | 5| <p>barbaz</p> | <p>barbaz</p> | # | 6| </div> | </div> | # * 7| </div> | <div class="section"> * # * 8| <div class="section"> | <h3>head</h3> * # * 9| <h3>head</h3> | <p>foo</p> * # * 10| <p>foo</p> | </div> * # | 11| </div> | </div> | # | 12|</root> |</root> | # +----+---------------------------+---------------------------+