"Waldhoff, Rodney" wrote:
> 
> A small debate has cropped up in the threads on the existing and proposed
> Commons packages about where to put the test classes.
> 
> There are two basic options:
> 
>  1. Place the test cases in their own directory, independent of the classes
> they are testing (e.g., /src/**.java, /test/**.java)
> 
>  2. Place the test cases in with the rest of the source, and use a naming
> convention to distinguish test from non-test classes (e.g,
> /src/**/Test*.java or /src/**/*Test.java, etc.)  The naming convention makes
> it easy to filter the test classes out of production JARs, JavaDocs, etc.,
> as they do in my build.xml examples.
> 
> As you can probably guess from my proposals, I'm a fan of the later (one
> source directory) approach.

+1

> 
> Why?
> 
>  a) The build script and directory organization is simplier.
>
>  b) The tests go where the "real classes" go. (The tests are *real classes*,
> they're just not used in production.)  And by "go", I don't just mean that
> they are placed in the same directory tree, but rather that when you build
> one you build the other, when you copy one you copy the other, etc.
> 
>  c) It's easy to see which classes are being tested and which are not, which
> in turn encourages more testing.  (To counter Peter's example, in my
> experience this has encouraged more complete testing.)
> 
> I guess it's just the XP zealot in me, but the "test, code, test" cycle
> seems much more natural if it's all coming from the same place in the
> directory tree.
> 
> So, I lean toward the "single tree" approach, but I'm not married to it
> either.  Nor am I particuarly concerned that everything in commons does it
> one way or the other (as long as a single component doesn't do both), but I
> thought that if we we're going to make it a guideline one way or the other,
> I'd state my case.
> 
> Thoughts?

In Velocity-land, we use JUnit for some fairly comprehensive testing of
various aspects of Velocity.  It's been a lifesaver.  We keep the test
case code in the source tree under /src/java/org/apache/velocity/test 
and so far it has worked fine.  keeps things easy to find, I think.

geir

-- 
Geir Magnusson Jr.                               [EMAIL PROTECTED]
Developing for the web?  See http://jakarta.apache.org/velocity/

Reply via email to