Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Please. some people just want to use real OO test suite, not just poor Test::Simple.
    • Test::Class is the way to go here. It also integrates with all of the standard Perl testing libraries. It doesn't look like Test::Unit::Lite does that.

      • Standard Perl testing libraries have poor and ugly non-OO API. Theirs tests also don't die after failure which differs from JUnit, PerlUnit, etc.
        • I should also add that if you really want to march to a different drummer and use a piece of software that virtually no one else will touch, that's fine, but at least see if you can submit patches to it so that it can at least output TAP and integrate with standard testing tools.

          • Well, yes. It means that the standard testing tool are really TAP protocol and Test::Harness module, not Test::Simple or Test::More.

            BTW, I'd like to see support for nested tests for TAP protocol, something like:
            1..3
            unit 1..2
            ok PASS unit 1/1
            ok PASS unit 1/2
            unit 1..1
            ok PASS unit 2/1
            unit 1..3
            ok PASS unit 3/1
            not ok Something goes wrong with 3/2
            ok PASS unit 3/3

            It is sad that the JUnit model really can't be implemented with Perl's TAP because TAP protocol

            • Why do I always remember new points after I hit submit?

              Actually, if you strictly adopt jUnit, it fits TAP quite nicely. Remember that a given test method containing several asserts is actually a single test. It's different from how Perl looks at things. So let's consider the following test method (I snagged it from a tutorial [clarkware.com]):

              public void testAddItem() {

                  Product book2 = new Product("Pragmatic Project Automation", 29.95);
                  cart.addItem(book2);

                  double expectedBalanc

              • Test::Unit and Test::Unit::Lite currently work like you wrote: single TAP line for single test function. It is somewhat limited.

                I think it would be much useful if TAP had support for nested tests:

                i.e.:

                1..2
                unit 1..0 testAddItem
                unit OK assertEquals(0.0, 0.0)
                unit OK assertEquals(2, 2)
                OK testAddItem
                unit 1..0 testAnotherItem
                unit not OK assertEquals(1, 2)
                # no more assertions in this function
                not OK testAnotherItem

                etc.

                I think I'll join the IETF effort because in my opinion the TAP protocol is too Perl-centric and doesn't fit to other testing models, especially to xUnit philosophy. I hope it is not to late...