On Thu, May 19, 2011 at 21:26, Pete Royle <howardmoon(a)screamingcoder.com>wrote:
Hi Jason,
1. I think I will need a test suite with the test classes in
> src/main/java (rather than src/test/java) so that the provider can get
> those classes onto its own classpath during testing. Will Arquillian
> work OK like that (ie: does it have maven integration which specifically
> looks under src/test/java only)?
>
No, there's nothing in there that I'm aware of that would prohibit this
approach.
You're right of course. The thing that seems to be getting in my way is
actually the Surefire Maven plugin. I've created the TCK project separately
and configured the Compile plugin to generate a
seam-cron-asynchronous-tck-tests.jar which I'm then including in the
asynchronous provider's project like so:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>seam-cron-asynchronous-tck</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
However Maven still concludes that there aren't any test to run for that
project. I suppose that's for good reason, but I'd like to work out how I
can have these imported tests run by Surefire, rather than just the ones in
src/test/java. I'll keep trying but please chime in if anyone has any ideas.
Here's the "official way" of doing it:
http://maven.apache.org/guides/mini/guide-attached-tests.html
2. The classes in the test suite have a hard-coded @Deployment, and
I'm
> not sure how I'd go about customising that place a different provider
> class on the classpath. I don't want to have to force my providers to
> extend every test case just to customise the deployment.
>
You're @Deployment should be in the test class, but that doesn't stop you
from having a base method that setup everything and just returns an archive
you can add to, or even merge(...) in your @Deployement method.
Would this require me to extend each of the TCK test classes in the
provider project, in order to be able to add to the archive returned by the
base method? This is something I wanted to avoid (even though it would
clearly solve problem 1).
You could simply call the method and then modify or merge the two archives
together.
Cheers,
Pete R
--
Jason Porter
http://lightguard-jp.blogspot.com
http://twitter.com/lightguardjp
Software Engineer
Open Source Advocate
Author of Seam Catch - Next Generation Java Exception Handling
PGP key id: 926CCFF5
PGP key available at:
keyserver.net,
pgp.mit.edu