Hi David,
Martijn - I've seen this done a couple of different ways. I can't say
that there is any particular set of advantages/disadvantages that makes
one more attractive than another. I'm sure
you've already thought about these, but here they are, just the same:
#1 - The functional tests are named with a specific suffix (ex. _FT) so
that they can be included/excluded by profile. They still live in the
src/test/java tree alongside the unit tests. In
this case, you must explicitly include and/or exclude tests based on a
pattern matching their class names.
#2 - Place all of your functional tests in a different source tree (ex.
src/functionalTest/java). As with #1, you have to do some include/exclude
type work, but in this case, you only
have to do so on your profile that runs the functional tests. However,
you also have to make sure to include this tree on your compilation.
So, IMHO, there's no clear winner. I've been dealing with similar
problems lately for Integration Tests that actually start up my web app
and test it using Selenium. I have the same
set of problems. I think I read that there are plans to enhance Maven
with the knowledge of functional/integration tests, but I don't know what
the timing for any such change is.
Thanks David, this helps (along with Ian's comments) confirm that there is
currently no 'official' Maven life-cycle support for these types of tests
(yet), hopefully as long as we're consistent in our approach any of the
suggested solutions will be more than adequate :).
Cheers,
Martijn
PS: I will also post separately about the 'true' integration tests scenario
(where we have tests that can be JUnit run but involve many modules and/or
projects and can also have 3rd party requirements such as a J2EE server up
and running).
The specific purpose in this case is to ensure that we've wired up
messaging flow(s) within our module. This is done by sending a mocked
event
through the various routers/transformers etc that we have. They're not
unit
tests because they're not testing a discrete bit of functionality within a
Java class.
However, it is vital that these tests pass before we package that module,
so I we want to run them as part of a the test life-cycle (as opposed to
integration-test which is post package) or at least a life-cycle phase
that
is before package.
I agree that we could use profiles to run this group of tests separately,
but I'd like to understand where they should live in the source structure.
All of the Maven literature that I have read talks of
name>-->test-->src-->java being used for unit tests, but tests such as
mine
fall into a grey area?
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org