Mark Hindess wrote:
On 29 November 2006 at 20:34, "Ivan Popov" <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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


Reply via email to