From: Erik M. <em...@ge...> - 2001-10-22 20:54:14
|
The angle I (and I believe Kent)was coming from is that right now, getName is used to identify which test to run for rerun in swingui.TestRunner and awtui.TestRunner. Both of which are very similar, the top one (awtui) could be refactored to look like the bottom one BTW (code below). (votes for refactoring the awtui rerun to call reRunTest as in swingui?) So back to getName()... Here getName uses the name of the Test to get the test given the test's classname. Erich has proposed a TestRunner interface that uses java types and primitives (Strings and longs) as opposed to some junit class. so that classes that implement TestRunner don't have to use serialization of objects for remote calls. The first TestRunner interface had one string to build your test in rerun. The second passes in the two strings, classname and testname. So I think using the second interface answers our questions on getName(), keep it the same. Kent? Erik ======= rerun in awtui.TestRunner public void rerun() { int index= fFailureList.getSelectedIndex(); if (index == -1) return; Test test= (Test)fFailedTests.elementAt(index); if (!(test instanceof TestCase)) { showInfo("Could not reload "+ test.toString()); return; } Test reloadedTest= null; try { Class reloadedTestClass= getLoader().reload(test.getClass()); Class[] classArgs= { String.class }; Constructor constructor= reloadedTestClass.getConstructor(classArgs); Object[] args= new Object[]{((TestCase)test).getName()}; reloadedTest=(Test)constructor.newInstance(args); } catch(Exception e) { showInfo("Could not reload "+ test.toString()); return; } TestResult result= new TestResult(); reloadedTest.run(result); String message= reloadedTest.toString(); if(result.wasSuccessful()) showInfo(message+" was successful"); else if (result.errorCount() == 1) showStatus(message+" had an error"); else showStatus(message+" had a failure"); } ======= rerun in swingui.TestRunner private void rerun() { TestRunView view= (TestRunView)fTestRunViews.elementAt(fTestViewTab.getSelectedIndex()); Test rerunTest= view.getSelectedTest(); if (rerunTest != null) rerunTest(rerunTest); } private void rerunTest(Test test) { if (!(test instanceof TestCase)) { showInfo("Could not reload "+ test.toString()); return; } Test reloadedTest= null; try { Class reloadedTestClass= getLoader().reload(test.getClass()); Class[] classArgs= { String.class }; Object[] args= new Object[]{((TestCase)test).getName()}; Constructor constructor= reloadedTestClass.getConstructor(classArgs); reloadedTest=(Test)constructor.newInstance(args); } catch(Exception e) { showInfo("Could not reload "+ test.toString()); return; } TestResult result= new TestResult(); reloadedTest.run(result); String message= reloadedTest.toString(); if(result.wasSuccessful()) showInfo(message+" was successful"); else if (result.errorCount() == 1) showStatus(message+" had an error"); else showStatus(message+" had a failure"); } > -----Original Message----- > From: jun...@li... > [mailto:jun...@li...]On Behalf Of Vladimir > Bossicard > Sent: Sunday, October 21, 2001 3:11 PM > To: jun...@li... > Subject: Re: [Junit-devel] getName() > > > > > > > >It seems like we want a method that means "get the displayable > name of this > >implementor of Test". > > > Originally I wanted a method that meant "get the name the > TestCase/TestSuite was created with". As a TestSuite can be created > without a name, it is up to the calling application to handle this. > > If a user don't create a TestSuite with a name, he should not expect the > tree (for example) to display anything special. Maybe the TestSuite's > classname or "Name not provided". If he does want a specific name, he > can just specify it! > > -Vladimir > > -- > Vladimir Bossicard > www.bossicard.com > > > _______________________________________________ > Junit-devel mailing list > Jun...@li... > https://lists.sourceforge.net/lists/listinfo/junit-devel |