[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [stellation-res] Work merging Unit tests
|
OK, so I'm a bonehead. There's a method Suite.addTestSuite(Class), which
gets the test suite for a class, and adds it to the current suite. So
the right way to do it is to use that, rather than the dumb hack I
suggested.
-Mark
On Tue, 2002-12-31 at 20:28, Mark C. Chu-Carroll wrote:
> On Mon, 2002-12-30 at 07:09, DeSmet_Ringo@xxxxxxx wrote:
> > Mark,
> >
> > > What I'd like to do is propose adding a new master test runner, which
> > > will run all of the suites in the unittest project. To do this, we
> > > would add a method "static void addTests(TestSuite suite)" to each
> > > of the unit tests; and the current "suite" method in each of the
> > > current test suites would be replaced with boilerplate:
> > >
> > > public static TestSuite suite() {
> > > TestSuite result = new TestSuite();
> > > addTests(result);
> > > return result;
> > > }
> > >
> > > Then, in the master unit test class, when you add a suite,
> > > you just add
> > > one line to its "suite" method, to call the "addTests" method of
> > > your new test suite class.
> >
> > So in the end, you have two methods in each test class, the suite method and
> > the addTests method, right?
> >
> > For quite some time now, I have the habit of only writing a suite method and
> > adding sub-suites to it in there:
> >
> > public static Test suite() {
> > TestSuite suite = new TestSuite(ThisClass.class);
> > suite.setName("A descriptive name, something better than the
> > classname");
> >
> > suite.addTest(SubSuiteClass.suite());
> > // Add other subsuites here.
> > }
> >
> > You only have one method per class where to look. Giving a Class object to
> > the TestSuite constructor will let it detect all test methods through
> > reflection. Using the suite method in both master and sub suites gives you
> > the opportunity to run any suite you like. E.g. if you use the Eclipse JUnit
> > test runner on a sub suite, it will build the sub suite using the suite
> > method, not through the addTests method.
> >
> > Setting a more readable name is always nice in test runners like the Swing
> > GUI test runner and the Eclipse JUnit test runner. You will see nice
> > categories with a clean name...
>
> OK. I agree that being able to name suites is useful. I do make heavy
> use of the individual test names, and there's a lot of value there.
>
> But what I'd really like is an easy-to-use way to run multiple suites
> together, as a comprehensive test. And there's a compromise there: you
> do lose the ability to name suites; you do lose the ability to
> automatically generate the suite using introspection; you have to write
> your own suite methods that work by manually adding tests.
>
> I'm far from an expert on JUnit, so there's a fairly good chance that
> there's a better way of doing what I want without making these
> compromises. Do you know a better way of using JUnit to merge the suites
> together into one comprehensive suite, while still retaining the ability
> to run them individuality?
>
> -Mark
>
> --
> Mark Craig Chu-Carroll, IBM T.J. Watson Research Center
> *** The Stellation project: Advanced SCM for Collaboration
> *** http://www.eclipse.org/stellation
> *** Work Email: mcc@xxxxxxxxxxxxxx ------- Personal Email: markcc@xxxxxxxxxxx
>
>
> _______________________________________________
> stellation-res mailing list
> stellation-res@xxxxxxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/stellation-res
--
Mark Craig Chu-Carroll, IBM T.J. Watson Research Center
*** The Stellation project: Advanced SCM for Collaboration
*** http://www.eclipse.org/stellation
*** Work Email: mcc@xxxxxxxxxxxxxx ------- Personal Email: markcc@xxxxxxxxxxx