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



Reply via email to