You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Herve Boutemy (JIRA)" <ji...@codehaus.org> on 2011/08/19 01:25:34 UTC

[jira] Updated: (ARCHETYPE-334) Run a build on generated project during integration test

     [ https://jira.codehaus.org/browse/ARCHETYPE-334?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Herve Boutemy updated ARCHETYPE-334:
------------------------------------

    Fix Version/s:     (was: 2.1)
                   2.x

> Run a build on generated project during integration test
> --------------------------------------------------------
>
>                 Key: ARCHETYPE-334
>                 URL: https://jira.codehaus.org/browse/ARCHETYPE-334
>             Project: Maven Archetype
>          Issue Type: New Feature
>          Components: Plugin
>    Affects Versions: 2.0-alpha-5
>            Reporter: Jesse Glick
>            Priority: Minor
>             Fix For: 2.x
>
>
> Currently it seems that {{archetype:integration-test}} just creates some projects from the archetype with defined parameters and compares their contents to "golden" copies. (By the way http://maven.apache.org/archetype/maven-archetype-plugin/integration-test-mojo.html does not document this in any way; I had to read {{IntegrationTestMojo}} source to find this out.)
> While that might be useful if you happen to have very complex Velocity templates and need to test that property substitution works the right way with different inputs, most archetypes have rather simple templates that just substitute {{artifactId}} and the like, in which case verifying that the created POM matches some fixed text is worse than useless: if you make any changes to the archetype, you are simply going to make identical changes to the test's golden files.
> What would be much more useful in my experience is to check that the newly generated project actually builds. For example, run {{mvn post-clean verify}} and check that at a minimum the build completes normally. This would catch common mistakes you might make when editing archetypes: mistyping a plugin or dependency name, introducing compilation errors into Java sources, etc. It would also be valuable to check that no warnings are emitted - such as the infamous {{File encoding has not been set...}} message when {{project.build.sourceEncoding}} has been forgotten.
> (You could also run {{mvn post-site}}, checking for warnings/errors, and compare {{target/site}} to a golden copy.)
> CI builders running integration tests might also do so with a pristine local repository (plus cache manager mirroring official public repos), which would catch accidental references to unreleased plugin/dependency versions that the archetype developer happened to have in their local repo.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira