[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

HTML test output?

Mark Slater

8/8/2007 4:21:00 AM

The other thing I've been looking for is a way to output the Ruby
unit test results to the console and to an XML log file. I found a
reference to the test-report gem, but it seems to have gone away. Has
something taken its place and I've just been unable to find it? Or am
I stuck writing my own?

Thanks again,

Mark

8 Answers

vasudevram

8/8/2007 4:32:00 PM

0

On Aug 8, 9:20 am, Mark Slater <li...@humanesoftware.com> wrote:
> The other thing I've been looking for is a way to output the Ruby
> unit test results to the console and to an XML log file. I found a
> reference to the test-report gem, but it seems to have gone away. Has
> something taken its place and I've just been unable to find it? Or am
> I stuck writing my own?
>
> Thanks again,
>
> Mark

Don't get what you mean by an "XML log file" - and why XML? for
further parsing of the log results?
Anyway, if on Linux, getting the output both on the console and in a
file (as long as the format wanted in both is the same) is easy:

your_test_command | tee log_filename

That uses the Linux tee command (nice name, huh?) to make a copy of
its input both on stdout and to the given filename.

And if you're on Windows and need it badly enough, install Cygwin to
be able to use tee there too.
Note: Cygwin may be a little unstable (as per what I've heard from
friends) and _may_ (I don't say will) crash in some way. Caveat
user ...

Vasudev Ram
Dancing Bison Enterprises
Biz site: http://www.dancin...
PDF creation/construction toolkit:
http://sourceforge.net/proje...
Blog: http://jugad.livej...


Mark Slater

8/8/2007 8:52:00 PM

0

Well, with JUnit (and even PHPUnit) an XML log file is produced by
the unit tests. There are a few xsl and xslt stylesheets that can
convert those XML logs to HTML pages. That's what we use to see the
results of our automated builds. They're also easy to grep for
failures and errors. Our overall build process is driven by Ant and
Cygwin isn't an option for us; I'll ask our build guy if the "tee"
command is a viable approach for the automated builds though (all on
UNIX).

Still, an XML log file would be helpful. They're also good for QA
organizations trying to track breakages and bugs over time.

Mark

On Aug 8, 2007, at 9:34 AM, vasudevram wrote:

> On Aug 8, 9:20 am, Mark Slater <li...@humanesoftware.com> wrote:
>> The other thing I've been looking for is a way to output the Ruby
>> unit test results to the console and to an XML log file. I found a
>> reference to the test-report gem, but it seems to have gone away. Has
>> something taken its place and I've just been unable to find it? Or am
>> I stuck writing my own?
>>
>> Thanks again,
>>
>> Mark
>
> Don't get what you mean by an "XML log file" - and why XML? for
> further parsing of the log results?
> Anyway, if on Linux, getting the output both on the console and in a
> file (as long as the format wanted in both is the same) is easy:
>
> your_test_command | tee log_filename
>
> That uses the Linux tee command (nice name, huh?) to make a copy of
> its input both on stdout and to the given filename.
>
> And if you're on Windows and need it badly enough, install Cygwin to
> be able to use tee there too.
> Note: Cygwin may be a little unstable (as per what I've heard from
> friends) and _may_ (I don't say will) crash in some way. Caveat
> user ...
>
> Vasudev Ram
> Dancing Bison Enterprises
> Biz site: http://www.dancin...
> PDF creation/construction toolkit:
> http://sourceforge.net/proje...
> Blog: http://jugad.livej...
>
>
>


Jano Svitok

8/9/2007 7:38:00 AM

0

On 8/8/07, Mark Slater <lists@humanesoftware.com> wrote:
> Well, with JUnit (and even PHPUnit) an XML log file is produced by
> the unit tests. There are a few xsl and xslt stylesheets that can

Search the archive for 'test unit xml' and you'll find several solutions.

J.

Mark Slater

8/9/2007 6:19:00 PM

0

Well I've been searching, and unfortunately the best solution that
used to exist (test-report) is gone, and I'm not comfortable tying
our tests to software that doesn't exist anymore. Other solutions
seem to be written for use with specific libraries (RSpec for
example) and I don't want to introduce extra dependencies when all I
need is a different logger.

So I've looked into writing my own; certainly the Console::TestRunner
class isn't hard to understand and extend. The problem I've run into
is that the rake TestTask only has the options attribute available to
specify the test runner (t.options = "--runner=gtk", for example) and
the list of available runners is baked into the Autorunners class. I
haven't been able to add my custom runner to the list via the rake
file because rake invokes a new process to run the tests (which is
why the runner needs to be specified command-line-option-style).

At this point I'm looking at submitting a patch to Test::Unit with
the new test runner that I make. I have to say though, with a
language as dynamic as Ruby is, I'm surprised that the only *clean*
way of adding a new test runner is to add it to the Test::Unit
source; maybe I'm still too new though.

If I'm missing something, please let me know.

Mark

On Aug 9, 2007, at 12:38 AM, Jano Svitok wrote:

> On 8/8/07, Mark Slater <lists@humanesoftware.com> wrote:
>> Well, with JUnit (and even PHPUnit) an XML log file is produced by
>> the unit tests. There are a few xsl and xslt stylesheets that can
>
> Search the archive for 'test unit xml' and you'll find several
> solutions.
>
> J.
>


Chris Carter

8/9/2007 6:27:00 PM

0

On 8/7/07, Mark Slater <lists@humanesoftware.com> wrote:
> The other thing I've been looking for is a way to output the Ruby
> unit test results to the console and to an XML log file. I found a
> reference to the test-report gem, but it seems to have gone away. Has
> something taken its place and I've just been unable to find it? Or am
> I stuck writing my own?
>
> Thanks again,
>
> Mark
>
>

Check out the ci-reporter rails plugin and gem.

--
Chris Carter
concentrationstudios.com
brynmawrcs.com

Matt Berney

8/9/2007 11:53:00 PM

0

Mark Slater wrote:
> Well, with JUnit (and even PHPUnit) an XML log file is produced by
> the unit tests. There are a few xsl and xslt stylesheets that can
> convert those XML logs to HTML pages. That's what we use to see the
> results of our automated builds. They're also easy to grep for
> failures and errors. Our overall build process is driven by Ant and
> Cygwin isn't an option for us; I'll ask our build guy if the "tee"
> command is a viable approach for the automated builds though (all on
> UNIX).
>
> Still, an XML log file would be helpful. They're also good for QA
> organizations trying to track breakages and bugs over time.
>
> Mark

I have successfully generated the XML file with ci-reporter. However, I
am interested in the xsl and xslt stylesheets that convert XML logs to
HTML. How does that work?
--
Posted via http://www.ruby-....

Matt Berney

8/13/2007 4:08:00 PM

0

With some googling and tinkering, I figured out how to write a xslt
stylesheet for test reporting. Here is the stylesheet:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform...

<xsl:template match="/">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>

<xsl:template match="testsuite">
<h2>Test Report:<xsl:value-of select="@name"/></h2>
<table border="0">
<tr>
<td><b>Number of Tests:</b></td>
<td><xsl:value-of select="@tests"/></td>
</tr>
<tr>
<td><b>Number of Failures:</b></td>
<td><xsl:value-of select="@failures"/></td>
</tr>
<tr>
<td><b>Execution Time:</b></td>
<td><xsl:value-of select="@time"/></td>
</tr>
<tr>
<td><b>Number of Tests:</b></td>
<td><xsl:value-of select="@tests"/></td>
</tr>
</table>
<h3>Test Status</h3>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Name</th>
<th align="left">Status</th>
<th align="left">Execution Time</th>
</tr>
<xsl:apply-templates select="testcase"/>
</table>
</xsl:template>

<xsl:template match="testcase">
<tr>
<td><xsl:value-of select="@name"/></td>
<xsl:variable name="bgcolor">
<xsl:choose>
<xsl:when test="@status='Failed'">red</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<td bgcolor="{$bgcolor}"><xsl:value-of select="@status"/></td>
<td><xsl:value-of select="@time"/></td>
</tr>
<xsl:apply-templates select="failure"/>
</xsl:template>

<xsl:template match="failure">
<tr><td colspan="3"><xsl:value-of select="."/></td></tr>
</xsl:template>
</xsl:stylesheet>
--
Posted via http://www.ruby-....

Mark Slater

8/15/2007 1:14:00 AM

0

Awesome Matt, thanks! I'll try it out once I get the ci-reporter
installed. I got pulled away on other things for the past week and am
just now getting back to looking at this.

Mark

On Aug 13, 2007, at 9:07 AM, Matt Berney wrote:

> With some googling and tinkering, I figured out how to write a xslt
> stylesheet for test reporting. Here is the stylesheet:
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform...
>
> <xsl:template match="/">
> <html>
> <body>
> <xsl:apply-templates/>
> </body>
> </html>
> </xsl:template>
>
> <xsl:template match="testsuite">
> <h2>Test Report:<xsl:value-of select="@name"/></h2>
> <table border="0">
> <tr>
> <td><b>Number of Tests:</b></td>
> <td><xsl:value-of select="@tests"/></td>
> </tr>
> <tr>
> <td><b>Number of Failures:</b></td>
> <td><xsl:value-of select="@failures"/></td>
> </tr>
> <tr>
> <td><b>Execution Time:</b></td>
> <td><xsl:value-of select="@time"/></td>
> </tr>
> <tr>
> <td><b>Number of Tests:</b></td>
> <td><xsl:value-of select="@tests"/></td>
> </tr>
> </table>
> <h3>Test Status</h3>
> <table border="1">
> <tr bgcolor="#9acd32">
> <th align="left">Name</th>
> <th align="left">Status</th>
> <th align="left">Execution Time</th>
> </tr>
> <xsl:apply-templates select="testcase"/>
> </table>
> </xsl:template>
>
> <xsl:template match="testcase">
> <tr>
> <td><xsl:value-of select="@name"/></td>
> <xsl:variable name="bgcolor">
> <xsl:choose>
> <xsl:when test="@status='Failed'">red</xsl:when>
> <xsl:otherwise></xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
> <td bgcolor="{$bgcolor}"><xsl:value-of select="@status"/></td>
> <td><xsl:value-of select="@time"/></td>
> </tr>
> <xsl:apply-templates select="failure"/>
> </xsl:template>
>
> <xsl:template match="failure">
> <tr><td colspan="3"><xsl:value-of select="."/></td></tr>
> </xsl:template>
> </xsl:stylesheet>
> --
> Posted via http://www.ruby-....
>