Sorry I didn't get back to folks earlier.  I do genuinely believe that
branching the integration tests is a good idea.  (Though I can't say
anything bad about TestNG; we should do that, too!)

My remarks about branching being a good idea are based on about 4 years
of experience doing automated testing here at work.  Basically, the gist
of the problem is:

1) *Most* tests are version specific; they are the norm, not the
exception.  (It doesn't look like that right now because Maven doesn't
have a lot of integration tests that pass in 2.1 but fail in 2.0, mostly
because we seem not to have any tests that we know will fail, but I
think we can/should expect a whole lot of those in the future.  And then
think about 2.5, 3.0...)

2) Smart tests are bad tests.  It's essential, for the tests to have
value, that they be as simple as possible.  Running the same tests
against multiple versions encourages people to add code paths to the
test, e.g. "if this is 2.0, do it this way, but if this is 2.1..."

3) The maintenance burden isn't anywhere near as great as you'd think
(because most tests are version specific).  There's no point in
back-porting that new embedder test or that new bugfix test to Maven
2.0, because the test will never pass in 2.0.

More generally, I think the goal of trying to have a single body of
tests that gets run against all Maven versions isn't really sound.
It'll work 
right now because 2.1 isn't so different from 2.0, but as soon as the
tests get very interesting, it's going to be more difficult to add in
(and maintain) those "if this is 2.1" annotations than it will be to
just branch the tests.

To answer Brett's earlier question as to why we moved the integration
tests out in the first place, I think it is useful to keep integration
tests out of the "core" build because they aren't just testing core...
They're testing "core" and a bunch of plugins *and* a bunch of shared
tools, etc. etc. etc.  They're a much higher level test than core, so
bundling them with "core" doesn't make a lot of sense.

-Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to