← Back to team overview

nunit-core team mailing list archive

[Bug 505700] Re: Data Driven TestFixture

 

We need the equivalent of TestCaseSource for parameterized fixtures. Not
sure about the nesting right away - that may be a further addition at a
later time.

** Changed in: nunit-3.0
   Importance: Undecided => High

** Changed in: nunit-3.0
       Status: New => Triaged

-- 
Data Driven TestFixture
https://bugs.launchpad.net/bugs/505700
You received this bug notification because you are a member of NUnit
Core Developers, which is the registrant for NUnit Framework.

Status in NUnit Test Framework: Triaged

Bug description:
Hi,

I have hierarchy like data-driven test cases that’s 3 levels deep.
Currently the TestFixture can only be instantiated only a constant
number of times. How can I parameterize the TestFixture based on
source input, same like the TestCaseSource attribute?

Ref:
http://groups.google.com/group/nunit-discuss/browse_thread/thread/1628db6b5977876b
http://stackoverflow.com/questions/2018758/convert-string-to-c-code-before-compilation

Here is simple example, I need the NUnit GUI to be something like this.

Rectangle
     Rectagle("length1", "width1")
        CircleInsideTheRectangle
            CircleInsideTheRectangle("radius1")
                MaxSquareOutsideCircleAndInsideRectangleTest
                    MaxSquareOutsideCircleAndInsideRectangleTest("side1")
                    MaxSquareOutsideCircleAndInsideRectangleTest("side2")
                    MaxSquareOutsideCircleAndInsideRectangleTest("side3")
                    ...
            CircleInsideTheRectangle("radius2")
                MaxSquareOutsideCircleAndInsideRectangleTest
                    MaxSquareOutsideCircleAndInsideRectangleTest("side4")
                    MaxSquareOutsideCircleAndInsideRectangleTest("side5")
     Rectagle("length2", "width2")
        CircleInsideTheRectangle
            CircleInsideTheRectangle("radius3")
                MaxSquareOutsideCircleAndInsideRectangleTest
                    MaxSquareOutsideCircleAndInsideRectangleTest("side6")
    ...

The Rectangle and CircleInsideTheRectangle TestFixture class can be any number (it's data driven). The MaxSquareOutsideCircleAndInsideRectangleTest is a data driven test method.

While sure everything can be made into TestCaseSource, for complex test the data input will be very long.

For efficiency, I would like the TestFixture class to be instantiated only once for all the child TestFixture and TestCase. Because the setting up and tearing down could take a long time. As seen the child require some information from the parent. This may need abstract class and inheritance, but it's not easy to do.

Thank you very much.

Best regards,
Edward







References