Gary Evans
2008-04-26 19:46:50 UTC
Hi Charlie,
Thanks for that information, that makes a lot of sense! I've got a couple more comments inline ;)
yep, that's the main advantage I saw for the parameterized fixture and test method.
How I was seeing this work though, was to add in a property so that users can specify data for each parameter independently.
But also, I wanted to do it for the users example data.
i.e. if a user said I know that my theory is valid for
data set 1:
parameter 1 = 2.0; parameter 2 = 3.0; parameter 3 = 4.0;
data set 2:
parameter 1 = 5.0; parameter 2 = 7.0; parameter 3 = -2.0;
then I'd respect their choice - make sure that the theory is executed with these datasets, but I'd like ALSO to include this data in the pairwise testing data. this would require that the parameterprovider get hold of the separately provided data. Is this possible?
it works in the same way, the changes were TestCaseResult has been renamed to TestResult,
and my TestMethod no longer throws an exception in failure - it sets the TestResult to Success or Failure. I can send you this code in its current state if you want though.
Oh, strangely, when I installed NUnit 2.5, it didn't install half of the assemblies into the GAC. I ended up downloading and building the source anyway (it's easier to figure out what's changed by seeing what exceptions are thrown from the middle of NUnit), but is the installer broken? (I can still run the install of NUnit, but not reference the ocre assemblies).
Thanks again!
Gary
_________________________________________________________________
100s of prizes to be won at BigSnapSearch.com
http://www.bigsnapsearch.com
Thanks for that information, that makes a lot of sense! I've got a couple more comments inline ;)
My guess is that your extension should probably be both a test case> builder> > and a data provider, so take a look at the ParameterProviders extension> > point.> > I've upgraded my theory extension to build and work against the NUnit 2.5> changes, but I haven't made use of any ParameterProvider stuff yet - what> advantage does it give me to do so?> > To be more precise: I meant that the InlineData and PropertyData be handled> by providers, rather than directly in your code. This has> advantages and disadvantages, which probably apply differently to each of> your extensions> > PRO> You can reuse code, since NUnitTestMethod now understands providers.
Your extensions can make use of other data providers, if those providers are> willing to give you data.
this might work well with the theory extension - I was going to look at the all-pairs test case generation soon, but it would be easier to defer that work to later and have it as a separate data provider.How I was seeing this work though, was to add in a property so that users can specify data for each parameter independently.
But also, I wanted to do it for the users example data.
i.e. if a user said I know that my theory is valid for
data set 1:
parameter 1 = 2.0; parameter 2 = 3.0; parameter 3 = 4.0;
data set 2:
parameter 1 = 5.0; parameter 2 = 7.0; parameter 3 = -2.0;
then I'd respect their choice - make sure that the theory is executed with these datasets, but I'd like ALSO to include this data in the pairwise testing data. this would require that the parameterprovider get hold of the separately provided data. Is this possible?
(Another way to say this is that people can decide to write data> extensions for your provider.)> Other extensions can make use of your data providers, if you allow it.> (So someone could create a new extension from your building blocks)> > CON> In 2.5, if you accept any data providers, you have no further control over> which providers supply it.>
This means that I could be getting data from anywhere? but I can still provide my own data provider? (data providers are additive - they just add data to the pot?)For my data-driven tests and fixtures, I can see that using the> ParamterProvider lets me re-use code (I can lose my DynamicTestMethod which> derives from NUnitTestMethod), but for my theory extension, I need to create> a new TestMethod anyway - not just for the parameters, so it is worth me> going to the efforts of using a parameter provider?> > I see the difference. You would have to figure out how much your new method> differs from a standard method. For example,> you may only need to override the method that translates an exception to a> result state.> > Will it give me anything different - it this the way where we'd get the> user's test method invoked for all data sets but only display one entry in> the tree? (and they'd be able to drill down to see all of the data used in> running the test/theory?) > > What is currently called ParameterProviders (a better name may be> TestCaseProviders) is an extension point for creating new parameterized> tests in the tree itself. I plan to add another extension point that> provides data at runtime, without creating any> new data in the tree. This would only work for a new type of test case that> returned multiple results and would require support in> the UI in order to drill down into the results. I feel that's still the> biggest thing missing for the final 2.5 release.> > I just downloaded the latest versions of both extensions. I'll post any> further comments as I go through them.> > Charlie >
Thanks Charlie! I just thought I'd give you a heads up and let you know that I haven't got my 2.5 version of Maslina online yet.it works in the same way, the changes were TestCaseResult has been renamed to TestResult,
and my TestMethod no longer throws an exception in failure - it sets the TestResult to Success or Failure. I can send you this code in its current state if you want though.
Oh, strangely, when I installed NUnit 2.5, it didn't install half of the assemblies into the GAC. I ended up downloading and building the source anyway (it's easier to figure out what's changed by seeing what exceptions are thrown from the middle of NUnit), but is the installer broken? (I can still run the install of NUnit, but not reference the ocre assemblies).
Thanks again!
Gary
_________________________________________________________________
100s of prizes to be won at BigSnapSearch.com
http://www.bigsnapsearch.com