[jboss-as7-dev] Simplifying testsuite structure

Andrew Lee Rubinger andrew.rubinger at redhat.com
Tue Jun 14 01:17:25 EDT 2011


Hi, guys.

So we have some disagreement towards unification of the testsuite here, 
and I'd like to get that ironed out as soon as we can.  So anyone with 
strong opinions, please weigh.

Thomas has proposed collapsing "spec" and "api" into a single point: 
"integration".  I think this is actually a step back from where we 
should be heading:

https://issues.jboss.org/browse/AS7-999
http://lists.jboss.org/pipermail/jboss-as7-dev/2011-March/000851.html

Now, it's taken me quite some time to do the prereq work in 
ShrinkWrap/Arquillian/AS7 ARQ fork unwinding to get to the point where 
I'm actually gunning fulltime now on that proposal, but the basic 
premise is this:

* Maven modules imply a dependency structure
* We should write tests/demos/samples as our users would
* Be weary of limiting the dependencies to *only* what's required

To this end, I've actually been working in the reverse direction from 
the points outlined in this Thread.  Instead of moving everything into a 
unified project to address all integration testing concerns, I've been 
breaking them into 3 categories:

* spec (Java EE and SE APIs only)
* api (spec, plus APIs we expose as public via AS - Hibernate 
annotations, EJB3 annotations, HornetQ API, etc)
* internals (The whole runtime)

Each of these represent integration tests, and the only difference is 
the dependencies available on the Compilation Classpath.  In other 
words, what a user will see as available in src/main/java.

My work is being done here:

https://github.com/ALRubinger/jboss-as/tree/AS7-999

...though I do need to rebase that and add my latest of today's commits 
to it.

Also, there's a corollary issue to expose out all of the AS7 public APIs 
in one POM:

https://issues.jboss.org/browse/AS7-650

I do feel strongly that when it comes to testing, we must act as users, 
so I suspect this above is the best approach. :)

S,
ALR

On 06/10/2011 03:38 AM, Thomas Diesler wrote:
> Folks,
>
> the current state is
>
> + demos
> + api
> + internals
> + legacy
> + spec
> + testsuite
> + api
> + benchmark
> + domain
> + integration
> + smoke
> + spec
> + stress
>
> some of these modules are empty. It is hard to find the "right location"
> for new tests. The demos are not self verifying. Instead I propose a
> simplified structure like this
>
> + (demos removed)
> + testsuite
> + benchmark
> + domain
> + integration
> + smoke
> + stress
>
> #1 demos removed
>
> The artefacts in the various demos modules are currently reused by
> testsuite modules (mainly smoke). demos are collapsed into smoke. I
> believe a well documented smoke testsuite can serve the purpose of demos
> and be a standalone deliverable. To be standalone you need to add a mvn
> repository entry to smoke/pom.xml. Users can download this as a binary
> and run 'mvn test' on it. Test cases should be organised in packages
> according to their functional area. It is guaranteed that the demos work
> because the smoke tests run on every build. Smoke tests should be well
> documented.
>
> #2 Collapse testsuite api+spec into integration
>
> The integration testsuite should only have dependencies on spec and api
> modules. Where this is not the case (i.e. a test depends on internal
> impl) the dependency could be flagged and an api module could be made
> available. Test cases should be organised in packages according to their
> functional area. There may be test packages that reference jiras (e.g.
> as835
> <https://github.com/tdiesler/jboss-as/tree/master/testsuite/integration/src/test/java/org/jboss/as/testsuite/integration/as835>).
>
> The main motivation is, that it is intuitively clear where to put a
> test. Even more importantly, where to look for already existing test
> coverage.
>
> cheers
> -thomas
>
>
>
> --
> xxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Thomas Diesler
> JBoss OSGi Lead
> JBoss, a division of Red Hat
> xxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
>
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev


More information about the jboss-as7-dev mailing list