Testing reports

Colin Law clanlaw at googlemail.com
Tue Mar 27 04:44:20 EDT 2012


On 27 March 2012 09:38, Derek Atkins <warlord at mit.edu> wrote:
> John Ralls <jralls at ceridwen.us> writes:
>
>> On Mar 26, 2012, at 1:45 PM, Colin Law wrote:
>>
>>> On 26 March 2012 15:15, John Ralls <jralls at ceridwen.us> wrote:
>>>> ...  Do you know how to write automated tests -- in any language --
>>>> that accurately check the output format of an HTML page? Automated
>>>> in this case means the test program decides whether the formatting
>>>> is correct, no human involved. If you do, or know where I can learn
>>>> that, please share.
>>>
>>> Ruby on Rails has various tools that allow automated testing of html
>>> output (designed for testing web apps), but I don't know that much
>>> about them or how they could be used with gnucash.  It would need a
>>> working Ruby environment I believe with the appropriate Ruby Gems
>>> installed and so may not be appropriate.
>>
>> Got a more complete pointer? A particular Gem, maybe? What I found
>> [1][2] don't appear to do post-render checks. Most of the search
>> results focussed on testing the Ruby rather than the HTML. That said,
>> validating the HTML for well-formedness would be a pretty good
>> start. There are C, Perl, and Python tools for doing that. A Ruby tool
>> would be OK, too -- I made the Git tools that we use for synching with
>> the Subversion repository by translating a Ruby Gem and then
>> elaborating it.
>
> The Integration Testing lets you pick apart the HTML output
> post-rendering.

Functional testing includes this also.

> But it's not testing what the user sees, per-se, but
> rather the raw HTML.  So it doesn't answer the "is the margin wide
> enough" question, but it does help you test a format, and makes sure
> that if e.g. you have a table, the expected data is in column #N.

I don't think there is any way of testing what the actual output looks
like, only that the html/css is what you expect.

>
> I think we DO need to have a content tester, so that we can run tests on
> reports that check for specific content/results.  As Colin says, known
> input + known report => known output.  Right now we do NOT have a good
> way to run those kinds of tests, so we would need to write a test
> harness for this.
>
> This would NOT be able to test, as John says, the visual rendering,
> paragraph breaks, margin widths, etc.
>
> Colin, I am sorry that the report formatting changed between 2.2 and
> 2.4.  Some of this probably happened because of the move from GtkHTML ->
> WebKit which enabled CSS, and many reports were updated to support CSS
> instead of the old weird stylesheet stuff.  GnuCash is still in flux,
> there, and I expect that the swap to WebKit might complete in 2.6 (but
> I'm not sure).  I think it's unreasonable to assume that a report will
> *look* the same across all versions and never change across application
> version changes.  However you are right that if we had a test harness we
> might have caught reports that failed to report the correct numbers when
> e.g. accounts were closed.
>
> So let's make some forward progress here.  Colin, can you help us get a
> test harness in place that will test a report for its content?  Clearly
> it means we would need some test fixtures, and some way to run a report
> and gleam the HTML output for testing.  Can you help us here?

Which Colin is this addressed to?  If me then I am afraid I have too
much on at the moment.

Colin L.



More information about the gnucash-user mailing list