harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paulex Yang <paulex.y...@gmail.com>
Subject Re: [general] JUnit consistency, practices
Date Wed, 29 Nov 2006 16:04:32 GMT
Mark Hindess wrote:
> On 29 November 2006 at 20:34, "Ivan Popov" <ivan.g.popov@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 <alexei.fedotov@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 <ivan.g.popov@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 <nbeyer@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

View raw message