blob: 4b1fc4e56a5068b1ff558adcb617cc50c17c05ed [file] [log] [blame]
-----
Introduction
-----
Hervé Boutemy
-----
2011-09-04
-----
~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements. See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership. The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License. You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied. See the License for the
~~ specific language governing permissions and limitations
~~ under the License.
~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/doxia/references/apt-format.html
Maven Core ITs
Maven Core Integration Tests provide tooling to test every aspect of Maven functionalities with any Maven version.
This project has declared the following modules:
* {{{./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.