You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Mark Hindess <ma...@googlemail.com> on 2006/11/29 16:25:47 UTC

Re: [general] JUnit consistency, practices

On 29 November 2006 at 20:34, "Ivan Popov" <iv...@gmail.com> wrote:
> Alexei,
> 
> I agree that it is still possible to run JUnit tests from command line
> even without having main() in the code. But I think it is easier to
> run test by convenient way
> 
>   $ java -cp junit.jar TestClass
> 
> rather than in a more complex manner
> 
>   $ java -cp junit.jar junit.textui.TestRunner TestClass
> 
> Actually, I constantly forget the right spelling of the full class
> name for TestRunner class and have to look into JUnit doc to specify
> proper name for such a command line.
>
> Also, it would be inconvenient if
> someone runs test from an IDE that does not support JUnit environment,
> but launches test as a usual Java application.
> 
> I don't insist on adding main() to each JUnit testcase, but I see no
> reason for removing this functionality from those test where it
> already exists.

Whatever we do, main() should either be in all tests or none.  Having it
in only a subset is *much* too confusing.

I don't care if we have main() in testcases or not.  (I personally will
never use it and don't find remembering[0] the junit test runner class.)

Regards,
 Mark.

[0] I remember it by writing it in a shell script because I have a 
terrible memory.

> Thanks.
> Ivan
> 
> On 11/29/06, Alexei Fedotov <al...@gmail.com> wrote:
> > Ivan, Stepan,
> >
> > I personally set +1 for removing main() method. Any script or command
> > line can be trivially modified to launch JUnit tests without main()
> > method: one should just add junit.textui.TestRunner class before a
> > test class name.
> >
> > $ java -cp junit.jar junit.textui.TestRunner TestClass
> >
> > I'm writing this trivial thing here because during our work on class
> > library test enabling it was FAQ N1 for all C/C++ developers.
> >
> > Note, any JUnit test won't work without junit.jar anyway. If you have
> > junit.jar, you have a standard test runner, which is also quite
> > lightweight.
> >
> > --
> > Thank you,
> > Alexei
> >
> > On 11/29/06, Ivan Popov <iv...@gmail.com> wrote:
> > > -1 for removing main().
> > >
> > > I often run individual tests from command line or using scripts and
> > > it's easier to launch them as a usual Java application. Also, this
> > > facilitates creating separate bundle with test to attach to a bug
> > > report or send to other people, who can just run it from command line
> > > or use script with the all required options already specified, instead
> > > of setting IDE for this test.
> > >
> > > Thanks.
> > > Ivan
> > >
> > > On 11/29/06, Nathan Beyer <nb...@gmail.com> wrote:
> > > > There is a large amount of inconsistency across the tests and I'd like
> > > > to lobby for cleaning them up as much as possible. I'm of the opinion
> > > > that test code should be clean, simple and transparent. Here are some
> > > > of the more noticeable items that I'd like to cleanup.
> > > >
> > > > * Empty setUp/teardown methods - There are a number of tests that
> > > > override setUp and/or teardown methods, but are either empty or just
> > > > call the super implementation.
> > > >
> > > > * Singleton suite methods - There are some tests that contain a static
> > > > "suite" method that creates a TestSuite and adds one test (the test
> > > > class it's declared in). Are there any practical uses for these
> > > > methods? TestSuites are for grouping together tests to treat them as
> > > > one unit. Since these suites are just one test, it doesn't seem to
> > > > provide much value.
> > > >
> > > > * main method launching text runner - There are some tests that
> > > > contain "main" methods which run the enclosing test via a JUnit text
> > > > runner. Most IDEs have built-in support for JUnit and can launch any
> > > > test arbitrarily and Ant can do the same thing. Does anyone launch
> > > > tests via these methods?
> > > >
> > > > My proposal would be to clean up these inconsistencies by eliminating
> > > > them, but what does everyone else think?
> > > >
> > > > -Nathan
> > > >
> > >
> >
> 



Re: [general] JUnit consistency, practices

Posted by "Geir Magnusson Jr." <ge...@pobox.com>.
Absolutely - if there are people that are against it, don't do it.

geir


Alexei Fedotov wrote:
> Let me clarify my point a bit - I don't think we should remove main()
> from all tests now having (-1) people aboard. This is not a big deal
> anyway compared to 96 open JIRA issues on Swing.
> 
> 
> On 11/29/06, Paulex Yang <pa...@gmail.com> wrote:
>> Mark Hindess wrote:
>> > On 29 November 2006 at 20:34, "Ivan Popov" <iv...@gmail.com> 
>> wrote:
>> >
>> >> Alexei,
>> >>
>> >> I agree that it is still possible to run JUnit tests from command line
>> >> even without having main() in the code. But I think it is easier to
>> >> run test by convenient way
>> >>
>> >>   $ java -cp junit.jar TestClass
>> >>
>> >> rather than in a more complex manner
>> >>
>> >>   $ java -cp junit.jar junit.textui.TestRunner TestClass
>> >>
>> >> Actually, I constantly forget the right spelling of the full class
>> >> name for TestRunner class and have to look into JUnit doc to specify
>> >> proper name for such a command line.
>> >>
>> >> Also, it would be inconvenient if
>> >> someone runs test from an IDE that does not support JUnit environment,
>> >> but launches test as a usual Java application.
>> >>
>> >> I don't insist on adding main() to each JUnit testcase, but I see no
>> >> reason for removing this functionality from those test where it
>> >> already exists.
>> >>
>> >
>> > Whatever we do, main() should either be in all tests or none.  
>> Having it
>> > in only a subset is *much* too confusing.
>> >
>> > I don't care if we have main() in testcases or not.  (I personally will
>> > never use it and don't find remembering[0] the junit test runner 
>> class.)
>> >
>> +1 to keep a consistent style.
>> > Regards,
>> >  Mark.
>> >
>> > [0] I remember it by writing it in a shell script because I have a
>> > terrible memory.
>>
>> > Thanks.
>> > Ivan
>> >
>> > On 11/29/06, Alexei Fedotov <al...@gmail.com> wrote:
>> >
>> >>> Ivan, Stepan,
>> >>>
>> >>> I personally set +1 for removing main() method. Any script or command
>> >>> line can be trivially modified to launch JUnit tests without main()
>> >>> method: one should just add junit.textui.TestRunner class before a
>> >>> test class name.
>> >>>
>> >>> $ java -cp junit.jar junit.textui.TestRunner TestClass
>> >>>
>> >>> I'm writing this trivial thing here because during our work on class
>> >>> library test enabling it was FAQ N1 for all C/C++ developers.
>> >>>
>> >>> Note, any JUnit test won't work without junit.jar anyway. If you have
>> >>> junit.jar, you have a standard test runner, which is also quite
>> >>> lightweight.
>> >>>
>> >>> --
>> >>> Thank you,
>> >>> Alexei
>> >>>
>> >>> On 11/29/06, Ivan Popov <iv...@gmail.com> wrote:
>> >>>
>> >>>> -1 for removing main().
>> >>>>
>> >>>> I often run individual tests from command line or using scripts and
>> >>>> it's easier to launch them as a usual Java application. Also, this
>> >>>> facilitates creating separate bundle with test to attach to a bug
>> >>>> report or send to other people, who can just run it from command 
>> line
>> >>>> or use script with the all required options already specified, 
>> instead
>> >>>> of setting IDE for this test.
>> >>>>
>> >>>> Thanks.
>> >>>> Ivan
>> >>>>
>> >>>> On 11/29/06, Nathan Beyer <nb...@gmail.com> wrote:
>> >>>>
>> >>>>> There is a large amount of inconsistency across the tests and 
>> I'd like
>> >>>>> to lobby for cleaning them up as much as possible. I'm of the 
>> opinion
>> >>>>> that test code should be clean, simple and transparent. Here are 
>> some
>> >>>>> of the more noticeable items that I'd like to cleanup.
>> >>>>>
>> >>>>> * Empty setUp/teardown methods - There are a number of tests that
>> >>>>> override setUp and/or teardown methods, but are either empty or 
>> just
>> >>>>> call the super implementation.
>> >>>>>
>> >>>>> * Singleton suite methods - There are some tests that contain a 
>> static
>> >>>>> "suite" method that creates a TestSuite and adds one test (the test
>> >>>>> class it's declared in). Are there any practical uses for these
>> >>>>> methods? TestSuites are for grouping together tests to treat 
>> them as
>> >>>>> one unit. Since these suites are just one test, it doesn't seem to
>> >>>>> provide much value.
>> >>>>>
>> >>>>> * main method launching text runner - There are some tests that
>> >>>>> contain "main" methods which run the enclosing test via a JUnit 
>> text
>> >>>>> runner. Most IDEs have built-in support for JUnit and can launch 
>> any
>> >>>>> test arbitrarily and Ant can do the same thing. Does anyone launch
>> >>>>> tests via these methods?
>> >>>>>
>> >>>>> My proposal would be to clean up these inconsistencies by 
>> eliminating
>> >>>>> them, but what does everyone else think?
>> >>>>>
>> >>>>> -Nathan
>> >>>>>
>> >>>>>
>> >
>> >
>> >
>> >
>>
>>
>> -- 
>> Paulex Yang
>> China Software Development Lab
>> IBM
>>
>>
>>
> 
> 

Re: [general] JUnit consistency, practices

Posted by Alexei Fedotov <al...@gmail.com>.
Let me clarify my point a bit - I don't think we should remove main()
from all tests now having (-1) people aboard. This is not a big deal
anyway compared to 96 open JIRA issues on Swing.


On 11/29/06, Paulex Yang <pa...@gmail.com> wrote:
> Mark Hindess wrote:
> > On 29 November 2006 at 20:34, "Ivan Popov" <iv...@gmail.com> wrote:
> >
> >> Alexei,
> >>
> >> I agree that it is still possible to run JUnit tests from command line
> >> even without having main() in the code. But I think it is easier to
> >> run test by convenient way
> >>
> >>   $ java -cp junit.jar TestClass
> >>
> >> rather than in a more complex manner
> >>
> >>   $ java -cp junit.jar junit.textui.TestRunner TestClass
> >>
> >> Actually, I constantly forget the right spelling of the full class
> >> name for TestRunner class and have to look into JUnit doc to specify
> >> proper name for such a command line.
> >>
> >> Also, it would be inconvenient if
> >> someone runs test from an IDE that does not support JUnit environment,
> >> but launches test as a usual Java application.
> >>
> >> I don't insist on adding main() to each JUnit testcase, but I see no
> >> reason for removing this functionality from those test where it
> >> already exists.
> >>
> >
> > Whatever we do, main() should either be in all tests or none.  Having it
> > in only a subset is *much* too confusing.
> >
> > I don't care if we have main() in testcases or not.  (I personally will
> > never use it and don't find remembering[0] the junit test runner class.)
> >
> +1 to keep a consistent style.
> > Regards,
> >  Mark.
> >
> > [0] I remember it by writing it in a shell script because I have a
> > terrible memory.
>
> > Thanks.
> > Ivan
> >
> > On 11/29/06, Alexei Fedotov <al...@gmail.com> wrote:
> >
> >>> Ivan, Stepan,
> >>>
> >>> I personally set +1 for removing main() method. Any script or command
> >>> line can be trivially modified to launch JUnit tests without main()
> >>> method: one should just add junit.textui.TestRunner class before a
> >>> test class name.
> >>>
> >>> $ java -cp junit.jar junit.textui.TestRunner TestClass
> >>>
> >>> I'm writing this trivial thing here because during our work on class
> >>> library test enabling it was FAQ N1 for all C/C++ developers.
> >>>
> >>> Note, any JUnit test won't work without junit.jar anyway. If you have
> >>> junit.jar, you have a standard test runner, which is also quite
> >>> lightweight.
> >>>
> >>> --
> >>> Thank you,
> >>> Alexei
> >>>
> >>> On 11/29/06, Ivan Popov <iv...@gmail.com> wrote:
> >>>
> >>>> -1 for removing main().
> >>>>
> >>>> I often run individual tests from command line or using scripts and
> >>>> it's easier to launch them as a usual Java application. Also, this
> >>>> facilitates creating separate bundle with test to attach to a bug
> >>>> report or send to other people, who can just run it from command line
> >>>> or use script with the all required options already specified, instead
> >>>> of setting IDE for this test.
> >>>>
> >>>> Thanks.
> >>>> Ivan
> >>>>
> >>>> On 11/29/06, Nathan Beyer <nb...@gmail.com> wrote:
> >>>>
> >>>>> There is a large amount of inconsistency across the tests and I'd like
> >>>>> to lobby for cleaning them up as much as possible. I'm of the opinion
> >>>>> that test code should be clean, simple and transparent. Here are some
> >>>>> of the more noticeable items that I'd like to cleanup.
> >>>>>
> >>>>> * Empty setUp/teardown methods - There are a number of tests that
> >>>>> override setUp and/or teardown methods, but are either empty or just
> >>>>> call the super implementation.
> >>>>>
> >>>>> * Singleton suite methods - There are some tests that contain a static
> >>>>> "suite" method that creates a TestSuite and adds one test (the test
> >>>>> class it's declared in). Are there any practical uses for these
> >>>>> methods? TestSuites are for grouping together tests to treat them as
> >>>>> one unit. Since these suites are just one test, it doesn't seem to
> >>>>> provide much value.
> >>>>>
> >>>>> * main method launching text runner - There are some tests that
> >>>>> contain "main" methods which run the enclosing test via a JUnit text
> >>>>> runner. Most IDEs have built-in support for JUnit and can launch any
> >>>>> test arbitrarily and Ant can do the same thing. Does anyone launch
> >>>>> tests via these methods?
> >>>>>
> >>>>> My proposal would be to clean up these inconsistencies by eliminating
> >>>>> them, but what does everyone else think?
> >>>>>
> >>>>> -Nathan
> >>>>>
> >>>>>
> >
> >
> >
> >
>
>
> --
> Paulex Yang
> China Software Development Lab
> IBM
>
>
>


-- 
Thank you,
Alexei

Re: [general] JUnit consistency, practices

Posted by Paulex Yang <pa...@gmail.com>.
Mark Hindess wrote:
> On 29 November 2006 at 20:34, "Ivan Popov" <iv...@gmail.com> wrote:
>   
>> Alexei,
>>
>> I agree that it is still possible to run JUnit tests from command line
>> even without having main() in the code. But I think it is easier to
>> run test by convenient way
>>
>>   $ java -cp junit.jar TestClass
>>
>> rather than in a more complex manner
>>
>>   $ java -cp junit.jar junit.textui.TestRunner TestClass
>>
>> Actually, I constantly forget the right spelling of the full class
>> name for TestRunner class and have to look into JUnit doc to specify
>> proper name for such a command line.
>>
>> Also, it would be inconvenient if
>> someone runs test from an IDE that does not support JUnit environment,
>> but launches test as a usual Java application.
>>
>> I don't insist on adding main() to each JUnit testcase, but I see no
>> reason for removing this functionality from those test where it
>> already exists.
>>     
>
> Whatever we do, main() should either be in all tests or none.  Having it
> in only a subset is *much* too confusing.
>
> I don't care if we have main() in testcases or not.  (I personally will
> never use it and don't find remembering[0] the junit test runner class.)
>   
+1 to keep a consistent style.
> Regards,
>  Mark.
>
> [0] I remember it by writing it in a shell script because I have a 
> terrible memory.

> Thanks.
> Ivan
>
> On 11/29/06, Alexei Fedotov <al...@gmail.com> wrote:
>   
>>> Ivan, Stepan,
>>>
>>> I personally set +1 for removing main() method. Any script or command
>>> line can be trivially modified to launch JUnit tests without main()
>>> method: one should just add junit.textui.TestRunner class before a
>>> test class name.
>>>
>>> $ java -cp junit.jar junit.textui.TestRunner TestClass
>>>
>>> I'm writing this trivial thing here because during our work on class
>>> library test enabling it was FAQ N1 for all C/C++ developers.
>>>
>>> Note, any JUnit test won't work without junit.jar anyway. If you have
>>> junit.jar, you have a standard test runner, which is also quite
>>> lightweight.
>>>
>>> --
>>> Thank you,
>>> Alexei
>>>
>>> On 11/29/06, Ivan Popov <iv...@gmail.com> wrote:
>>>       
>>>> -1 for removing main().
>>>>
>>>> I often run individual tests from command line or using scripts and
>>>> it's easier to launch them as a usual Java application. Also, this
>>>> facilitates creating separate bundle with test to attach to a bug
>>>> report or send to other people, who can just run it from command line
>>>> or use script with the all required options already specified, instead
>>>> of setting IDE for this test.
>>>>
>>>> Thanks.
>>>> Ivan
>>>>
>>>> On 11/29/06, Nathan Beyer <nb...@gmail.com> wrote:
>>>>         
>>>>> There is a large amount of inconsistency across the tests and I'd like
>>>>> to lobby for cleaning them up as much as possible. I'm of the opinion
>>>>> that test code should be clean, simple and transparent. Here are some
>>>>> of the more noticeable items that I'd like to cleanup.
>>>>>
>>>>> * Empty setUp/teardown methods - There are a number of tests that
>>>>> override setUp and/or teardown methods, but are either empty or just
>>>>> call the super implementation.
>>>>>
>>>>> * Singleton suite methods - There are some tests that contain a static
>>>>> "suite" method that creates a TestSuite and adds one test (the test
>>>>> class it's declared in). Are there any practical uses for these
>>>>> methods? TestSuites are for grouping together tests to treat them as
>>>>> one unit. Since these suites are just one test, it doesn't seem to
>>>>> provide much value.
>>>>>
>>>>> * main method launching text runner - There are some tests that
>>>>> contain "main" methods which run the enclosing test via a JUnit text
>>>>> runner. Most IDEs have built-in support for JUnit and can launch any
>>>>> test arbitrarily and Ant can do the same thing. Does anyone launch
>>>>> tests via these methods?
>>>>>
>>>>> My proposal would be to clean up these inconsistencies by eliminating
>>>>> them, but what does everyone else think?
>>>>>
>>>>> -Nathan
>>>>>
>>>>>           
>
>
>
>   


-- 
Paulex Yang
China Software Development Lab
IBM