moved explanations on Core ITs dependencies from README.md to site

This commit is contained in:
Hervé Boutemy 2013-12-01 19:34:23 +01:00
parent 6cf9d7444b
commit 690990d8e2
2 changed files with 17 additions and 2 deletions

View File

@ -1,5 +1,3 @@
Maven Core Integration Tests
Maven Developers List: dev@maven.apache.org
A little background to help understand things: A good IT does not depend on external repos like central, it uses dedicated test plugins and test repositories. The default settings.xml used by ITs helps to enforce this by pointing central at file:target/null which obviously can't resolve anything. This setup using a file-based dummy repo also helps execution time because this repo produces (expected) 404s much faster than a HTTP-based repo. The one place where access to central is desired is in the MavenITBootstrapTest which doesn't really test anything but just primes the local repo with any artifacts the ITs will need. So some care needs to be taken when introducing new dependencies into the ITs themselves or the support plugins. Many times the failures that we encounter are discrepancies between actual artifact consumption required and what is populated during bootstraping.

View File

@ -15,3 +15,20 @@ Maven Core ITs
* {{{./core-it-support/}Maven IT Support}}: Maven Integration Tests support tools, to completely decouple ITs from production plugins.
* {{{./core-it-suite/}Maven ITs}}: The effective Maven Integration Tests suite.
* Core ITs and dependencies
A good IT does not depend on external repos like central, it uses dedicated test plugins and test repositories.
The default <<<settings.xml>>> used by ITs helps to enforce this by pointing central at <<<file:target/null>>>,
which obviously can't resolve anything. This setup using a file-based dummy repo also helps execution time,
because this repo produces (expected) <<<404>>>s much faster than a HTTP-based repo.
The one place where access to central is desired is in the <<<MavenITBootstrapTest>>>
({{{./core-it-suite/xref-test/org/apache/maven/it/MavenITBootstrapTest.html}src}},
{{{./core-it-suite/testapidocs/org/apache/maven/it/MavenITBootstrapTest.html}javadoc}}),
which doesn't really test anything but just primes the local repo with any artifacts the ITs will need.
So some care needs to be taken when introducing new dependencies into the ITs themselves or the support plugins.
Many times the failures that we encounter are discrepancies between actual artifact consumption required and
what is populated during bootstraping.