Re: Updates to NUnit 2.5
"Charlie Poole" <[email protected]> Wed, 25 Jun 2008 09:00:17 -0700
| Newsgroups | gmane.comp.windows.dotnet.nunit.devel |
|---|---|
| Message-ID | <001201c8d6dc$92717f40$6401a8c0@ferrari> |
Bearing in mind that a class can implement all sorts of interfaces, I'm hesitant to use short names as a matter of practice. What do others think? Charlie > -----Original Message----- > From: Vaughn, Clifton [mailto:[email protected]] > Sent: Wednesday, June 25, 2008 7:37 AM > To: Charlie Poole; [email protected] > Subject: RE: [nunit-developer] Updates to NUnit 2.5 > > Fair enough point and I considered that, but I think if you > look at the line in its full context: > > testCases = provider.Get(someMethod); > > then it would seem to provide the extra information you want. > A time when this would be a problem is when you have one > class implementing more than one interface with the simple > Get() signature, but that doesn't matter since you said > there's no IParameterProvider. > > Thanks > > cliff > > > > -----Original Message----- > > From: Charlie Poole [mailto:[email protected]] > > Sent: Tuesday, June 24, 2008 8:35 PM > > To: Vaughn, Clifton; [email protected] > > Subject: RE: [nunit-developer] Updates to NUnit 2.5 > > > > Hi Cliff, > > > > > Any reason the signature of the method could be changed. > > > Something like the following: > > > > > > > > public interface ITestCaseProvider > > > > > { > > > > > bool Exists(MethodInfo method); > > > > > IEnumerable Get(MethodInfo method); > > > > > } > > > > > > The same would be true for IParameterProvider also. IMO, > it seems > > > redundant to include the type in the method name. > > > > There's no type in the method name, but I see what you mean... > > TestCase appears in the name of the interface and the name > of the each > > method. That's redundant in the declaration, although not > necessarily > > in using the interface. > > > > When I write > > provider.GetTestCasesFor(someMethod) > > it makes sense to me. But > > provider.Get(someMethod) > > gives me pause - what am I getting. > > > > In the end, this may just be a matter of style. I'm open to more > > suggestions, but I think the verbs need objects to make sense here. > > > > There's no longer a IParameterProvider, ITestCaseProvider > replaces it. > > > > Charlie > > > > > > > > Thanks > > > > > > cliff > > > > > > > > > > -----Original Message----- > > > > From: [email protected] > > > > [mailto:[email protected]] On > > Behalf Of > > > > Charlie Poole > > > > Sent: Tuesday, June 24, 2008 5:00 PM > > > > To: [email protected] > > > > Subject: Re: [nunit-developer] Updates to NUnit 2.5 > > > > > > > > More updates for those following CVS - note that the > > > attached emails > > > > cover all the important changes since the Alpha 2 release, > > > and will be > > > > reflected in the next Alpha in a few weeks. > > > > > > > > There is a major change to the Test hierarchy: TestCase > > > doesn't exist > > > > any longer. TestMethod inherits directly from Test now and > > > represents > > > > a Test implemented by a method. There could be some further > > > changes in > > > > this branch as well as for TestSuite, TestFixture, etc. > > > > > > > > All this is part of the move to parameterized tests, which > > > blurs the > > > > distinction between a suite and a case. I'm currently > using "test > > > > case" to refer to a single execution of a test with one set of > > > > parameters, producing one result and the class names will > > begin to > > > > reflect that. > > > > > > > > NUnitTestCaseBuilder is now split in two, with the > > original builder > > > > handling "regular" tests and ParameterizedTestCaseBuilder > > handling > > > > parameterized tests. A new DynamicTestBuilder, which recognizes > > > > DynamicTestAttribute and creates DynamicTests is > > > > > > > > Charlie > > > > > > > > > -----Original Message----- > > > > > From: [email protected] > > > > > [mailto:[email protected]] On > > > Behalf Of > > > > > Charlie Poole > > > > > Sent: Sunday, June 22, 2008 9:29 AM > > > > > To: [email protected] > > > > > Subject: Re: [nunit-developer] Updates to NUnit 2.5 > > > > > > > > > > More updates checked into CVS. All of this will be > > > > documented for the > > > > > release, but some of you may want an early heads-up, > > > > especially if you > > > > > are working on addins. > > > > > > > > > > EXTENSIBILITY > > > > > > > > > > The ParameterProviders extension point has been renamed to > > > > > TestCaseProviders. The interface that extensions must > > > > implement is now > > > > > ITestCaseProvider. Here's the definition: > > > > > > > > > > public interface ITestCaseProvider > > > > > { > > > > > bool HasTestCasesFor(MethodInfo method); > > > > > IEnumerable GetTestCasesFor(MethodInfo method); > > > > > } > > > > > > > > > > This is essentially the same as the IParameterProvider > > > interface in > > > > > the first two alphas. > > > > > > > > > > BUILT-IN PARAMETERIZED TESTS > > > > > > > > > > NUnit currently has two built-in providers: > > > > > TestCaseParameterProvider for TestCaseAttribute and > > > > > TestCaseFactoryProvider for FactoryAttribute. > > > > > > > > > > TestCaseParameterProvider will perform a number of > > conversions in > > > > > order to make the provided argument compatible with > method call. > > > > > > > > > > TestCaseFactoryProvider can work with properties, methods > > > > and fields > > > > > that implement IEnumerable. For static cases, use of an > > > > array is the > > > > > simplest approach. Either static or instance members may be > > > > used. For > > > > > methods takin a single ValueType argument, the enumerator > > > > may return > > > > > the bare argument rather than an array with one member. > > > > > > > > > > All of the above work at load time. For dynamic test cases, > > > > provided > > > > > at the instance of executin the test and possibly varying > > > > from run to > > > > > run, I plan to add DynamicTest and DynamicTestCaseProvider. > > > > > > > > > > OTHER STUFF > > > > > > > > > > The RequiredAddinAttribute may be placed on the assembly, > > > > on a class > > > > > or on a method. If the named addin is not loaded, the test > > > > or suite is > > > > > NotRunnable and shows up as red in the Gui. > > > > > > > > > > Charlie > > > > > > > > > > > -----Original Message----- > > > > > > From: [email protected] > > > > > > [mailto:[email protected]] On > > > > Behalf Of > > > > > > Charlie Poole > > > > > > Sent: Monday, June 16, 2008 12:14 PM > > > > > > To: [email protected] > > > > > > Subject: [nunit-developer] Updates to NUnit 2.5 > > > > > > > > > > > > Hi All, > > > > > > > > > > > > Now that I'm back home, I can properly upload a number of > > > > changes I > > > > > > made on my laptop while travelling. > > > > > > > > > > > > So far, I have made the following changes: > > > > > > > > > > > > 1. The release is now 2.5 Alpha 3. > > > > > > > > > > > > 2. I have changed DataSourceAttribute to FactoryAttribute > > > > > and it may > > > > > > now appear on a property, field or method. Any of these may > > > > > be either > > > > > > static or instance members. > > > > > > > > > > > > 3. IParameterProvider.GetParametersFor(MethodInfo method) > > > > > now returns > > > > > > IEnumerable rather than IList. > > > > > > > > > > > > 4. The Test abstract class now has default implementations > > > > > for several > > > > > > properties that were previously abstract. One of the > > > > > > Run() overloads has been removed. > > > > > > > > > > > > I'll post further as more changes are made. > > > > > > > > > > > > Charlie > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > > > ----------- > > > > > > Check out the new SourceForge.net Marketplace. > > > > > > It's the best place to buy or sell services for just > > > > about anything > > > > > > Open Source. > > > > > > http://sourceforge.net/services/buy/index.php > > > > > > _______________________________________________ > > > > > > nunit-developer mailing list > > > > > > [email protected] > > > > > > https://lists.sourceforge.net/lists/listinfo/nunit-developer > > > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > > ----------- > > > > > Check out the new SourceForge.net Marketplace. > > > > > It's the best place to buy or sell services for just > > > about anything > > > > > Open Source. > > > > > http://sourceforge.net/services/buy/index.php > > > > > _______________________________________________ > > > > > nunit-developer mailing list > > > > > [email protected] > > > > > https://lists.sourceforge.net/lists/listinfo/nunit-developer > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------- > > > > ----------- > > > > Check out the new SourceForge.net Marketplace. > > > > It's the best place to buy or sell services for just > > about anything > > > > Open Source. > > > > http://sourceforge.net/services/buy/index.php > > > > _______________________________________________ > > > > nunit-developer mailing list > > > > [email protected] > > > > https://lists.sourceforge.net/lists/listinfo/nunit-developer > > > > > > > > > > > > > > ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php