I'm running on half a brain today (allergies), but I do want to make one
point that I feel is pretty important:
IMO we need to move away from generalized test plugins for use in the
maven core ITs ASAP. Normal object-oriented design concerns don't apply
well here, and factoring behavior into ever more abstract architecture
does not serve the goal of clean, easy-to-debug integration tests. IMO
the only infrastructure we need for integration testing maven is the
verifier; everything else should be contained within the specific
integration test that uses it.
Sure, this will lead to a profusion of plugins, and probably will cost
some time in terms of executing the integration test run, but these are
not primary concerns of the integration test project...reliability and
ease-of-debugging are. When we use a plugin for more than one
integration test, it's inevitable that the logic in that plugin will be
far more complex than is really needed to check the requirements for a
particular integration test that uses it. This complexity is not helping
us at all, and certainly the value of consolidating testing/verification
logic from multiple integration tests is not greater than the problems
caused when we have to chase bugs into these plugins...then try to fix
the issue (which may be in the method of testing as much as in the main
code in these cases) without causing collateral damage to other
integration tests.
If the only dependency for integration tests is the verifier, then
there's not much point in moving it into its own SVN structure, IMO.
-john
---
John Casey
Developer and PMC Member, Apache Maven (http://maven.apache.org)
Member, Apache Software Foundation
Blog: http://www.ejlife.net/blogs/buildchimp
Brett Porter wrote:
On 15/09/2008, at 10:22 AM, Jason van Zyl wrote:
On 15-Sep-08, at 1:40 AM, Brett Porter wrote:
Hi,
To clear up some of the confusion about snapshots in the area I'd
like to take the following steps:
What confusion?
1) the answer to the question "what's the current release of the
verifier?" (it's 1.0, but there's 1.1-SNAPSHOT and 1.2-SNAPSHOT floating
around, we should just release the latest as it works).
2) in applying some patches I found these are also used by NMaven's
trunk. It was looking for 1.0-SNAPSHOT of maven-integration-test-helper
which is now 2.1-SNAPSHOT, though it has nothing to do with the Maven
version.
3) the inheritance hierarchy of the support modules no longer matches
the directory structure.
1) create /maven-integration-testing/trunk (+tags and branches)
Those are there already, no?
As I said, I'm suggesting a separate trunk for the bits that run maven
test suites (verifier + maven-* in the support dir) vs the test suite
itself (tests + support artifacts).
2) move maven-verifier and maven-integration-test-* from the recently
separated core-integration-tests-support module into that trunk (this
being a collection of things that help write integration tests that
run Maven). Group ID org.apache.maven.itest to avoid confusion with
the previous versions, and version 1.2-SNAPSHOT to align to the verifier
You want to take maven-verifier out of shared?
Yes, see above.
3) release the above multi-module project as 1.2
4) update core-integration-testing to use the above release and align
the versions as a single multi-module project (this being a
particular version of a whole test suite).
Thoughts?
I think you should defer to John and Shane's needs as Shane just got
seriously hosed by mismatched versions and while trying to stabilize
the trunk I would prefer to get some stable baseline before any
swizzling happens. What happened was just oversight but Shane and I
sat there for hours wondering what was going on until we released I
was running the ITs from source and he was running the IT ball which
were missing 10 ITs because no one was deploying it.
Exactly, I am trying to establish a stable baseline everything can use.
Having a few released artifacts will reduce the need to build things first.
- Brett
--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]