Re: NUnit 2.5: What's In It Now

"Kelly Anderson" <[email protected]> Thu, 10 Apr 2008 09:41:53 -0600
Newsgroups gmane.comp.windows.dotnet.nunit.devel
Message-ID <[email protected]>
On Wed, Apr 9, 2008 at 7:28 PM, Charlie Poole
<[email protected]> wrote:
> Hi Kelly,
>
>  As I see it, having a group of test types that act the same,
>  implies the ability to add extensions to a single test type,
>  aka extensions on extensions. Therefore, 3.0 not 2.5.
>
>  Being able to do this sort of thing is exactly why I want
>  to move to a more sophisticated addin architecture rather
>  than waste time trying to kluge it using our current one.

Ok, I think I see your point now.

>  > >  I'm pretty sure that MbUnit has precisely the degree of
>  > orthogonality
>  > > that the authors intended - no more no less. Same for NUnit.
>  >
>  > Their intention apparently was to have more orthogonality
>  > than NUnit does.
>
>  That's hard to say, since NUnit has never had the data sources
>  before - orthogonal or not. We agreed that it should be possible
>  to use any data source with any test in any combination. We now
>  have that - in 2.5.

The data sources changes the nature of the framework in interesting
ways, for sure. It pushes for orthogonality, but is that always right?
I don't know.

>  > How do I, as a casual user, learn that I can't call
>  > Assume.That inside of a Test? I could assume that it would in
>  > a particular way, and it wouldn't. How do I discover that
>  > fact as a casual user?
>
>  The test would give an error due to the unexpected exception.

That would help, IF the error were specific enough... something like

"Assume is not supported within [Test], it is for use with [Theory] only."

Or something to that extent. I don't like the dependence of Test on
Theory even in a message, but how else do you get them on the right
track quickly?

>  > So, do we want to create an MbUnit test runner as an
>  > extension to NUnit?
>
>  I think we want to have something that gives the functionality,
>  but I'm not sure we want to go as far as a test runner.

If we're doing it for csUnit and MSTest, why would MbUnit be a second
class citizen? Just curious. Is it because it's hard, or confusing, or
what?

>  There
>  are three levels we could do this at:
>
>  1) Have attributes and tests that look like MbUnit's
>  2) Simulate loading of mbUnit tests, execute their actual
>    asertions and interpret the results.
>  3) Write some sort of adapter that runs the tests under
>    the actual mbUnit runner and interpret the resultss.

I was thinking along the lines of 3.

>  (1) is how Andreas' RowTest works - as well as MbUnit's
>     emulation of NUnit.

Kind of weird to have NUnit run MbUnit to simulate running NUnit... :-)

>  (2) is how my csUnit and (in process) vsts addins work.
>  (3) is how Gallio works
>
>  For now, I'm sticking to (1) and (2) but we may go farther
>  in NUnit 3.0.

I wouldn't expect anything on this line until 3.0. Adding some
data-driven stuff in 2.5 is really good, but not emulation of MbUnit.

>  > Ok, that's a new idea. I figured you would want to know the
>  > specific data that made the Theory fail so that you could do
>  > something about it. I'm not sure how to present that if
>  > running the Theory is an atomic operation, but it does make
>  > me think about things in a potentially different way.
>
>  It seems to be how David Saff implemented it and it was my
>  assumption. The fact that you want more info if it fails
>  does't work against it. The single test would just return
>  an array of results.

Yes, it's just a bit different than I was thinking.

>  > I would agree that I am pragmatic, and trying to get things
>  > done. You are trying to preserve the integrity of NUnit over
>  > the long haul.
>
>  Actually, I'm doing both at different moments. Perhaps its
>  not always clear which mode I'm in.

Sometimes. :-)

>  > These are not entirely compatible ways to look at the world,
>  > and that leads to lively discussion. Neither is bad, just
>  > different. I do mix up the 2.5 and 3.0 stuff fairly freely,
>  > and that causes some confusion. The point though is that if
>  > we know where we want 3.0 to go, it can help in figuring out
>  > what can and cannot be put into 2.5.
>
>  Have you ever been a release manager? It's a job that requires
>  you to be very tough about putting things in that may destabilize
>  the release. That's where we are now. We have a release close
>  to going beta, which must go out this month or wait till
>  mid-summer, due to my schedule. Which do you pick? :-)

Let's get it out. :-)   Then Gary and I can play around with Theory in
Addin land.

>  > Ok. I'd be interested to hear the alternative you may have in mind.
>
>  "Reporting test results without exceptions" has been on the work plan
>  for a while. If I knew how to do it the workplan would say something
>  specific. I'm not above putting something on a plan that I have not
>  yet figured out how to do.

Fair enough.

-Kelly

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone