Inline.
On 08/11/2011 05:12 PM, Richard Achmatowicz wrote:AndrewCan you give a simple, concrete example of a spec test case (citing partof the J2EE spec, say), which illustrates:
Hehe, my PoC is filled with 'em. :) But keep in mind we're not directly
necessarily citing the EE specs, because we're *not* building a TCK in AS7.- what dependencies you want to be on the classpath, as well as thoseyou don't want to be only the classpath
For this discussion, I'm primarily concerned with the *compilation*
ClassPath, as this is the view users see when building their
applications. It's about explicitly defining what the AS7 API is. So
the deps for the compilation ClassPath should be as they are in by
AS7-999 branch and as described in the last email:
* spec - Java SE and Java EE
* api - JBoss-specific extensions to "spec" which comprise our AS7 API
* internals - Anything in the AS7 runtime
- what sample artifacts you would put in src/main and what you would putin src/test
* src/main - Stuff that is part of the deployment. Anything that you'd
be including in the @Deployment archive defined by an Arquillian-based
test case.
* src/test - The test infrastructure itself, like the JUnit test and
other util/helpers
- what compile and test execution time constraints you would want to enforceThis would help me to see the motivation for the refactoring and yourplanned organization of artifacts in src/main and src/test, whichdiffer from the standard organization of putting all test relatedartifacts in src/test.
Test execution time is an orthogonal concern, and relates instead back
to using "smoke" tests to run by default instead of the entire AS7
integration test suite (which won't scale to run on every build over
time). IMO it's already taking too long for standard builds.
Again, the motivation for moving/organizing in this fashion is to honor
dependencies and assert that the APIs we export ("api" and "spec-api"
modules) are complete. For instance, while moving tests around I
discovered that our POMs were incompete:
https://issues.jboss.org/browse/AS7-1489
https://issues.jboss.org/browse/AS7-1493
https://issues.jboss.org/browse/AS7-1479
https://issues.jboss.org/browse/AS7-1478
Also, is it not possible to control what is on the classpath by mavenelements like<classpathDependencyExcludes/> and the like?
That's for test runtime. Because Arquillian is starting (or connecting
to) the container in a remote process, we're less concerned with the
client runtime ClassPath, so long as it's enough for Arquillian to do
its thing.
S,
ALRRichardOn 08/11/2011 07:38 AM, Andrew Lee Rubinger wrote:Hi guys:I'd like to reopen the discussion regarding the testsuite organizationand its ongoing maintenance. This issue dates back a few months withsome debates and differing opinions, so I'll do my best to outline theguiding principles I'd like to see put in place concisely.To start off, I've a Proof-of-Concept for many of the following pointsnow located:https://github.com/ALRubinger/jboss-as/tree/AS7-999The relevant JIRA I've been using to track things:https://issues.jboss.org/browse/AS7-999So:1) TestSuite OrganizationI believe we need a single top-level categorization by which we mayorganize integration tests which are deployment-based and run within thecontext of the server. Because we use Maven modules (which are bound toa dependency structure), it makes sense to file these modules by thecompile-time dependencies they require. So in place I've put:testsuite/spec - Java SE and Java EE APIs onlytestsuite/api - AS7 APIs + Spectestsuite/internals - Use anything in the AS7 runtime in yourdeployments; not guaranteed to be back-compat across releasesThe primary motivation here is to ensure that the dependencies we export(ie. "spec-api", and "api" modules) are complete enough for users tocreate their own deployments. In this setup, we act as *users* of ourown APIs, and everything in src/main is limited to the relevantdependencies.I know the source of some disagreements earlier centered around placingthe tests right next to the deployments, and some folks consider thedeployments as part of the test itself. That's not a bad argument atall, but again consider that we then lose the ability to validate ourtests in the context of our exported APIs.2) Run Modes, Test SubsetsBecause the primary organizational criteria proposed in 1) is bydependency, these modules will grow large over time. The AS build overtime will take longer and longer to run. Additionally, there areruntime options to consider when starting tests. So consider thefollowing requirements:* Running the testsuite in IPv6* Running only a subset of tests as part of the main buildThese lend themselves well to using build profiles. By default, I thinkthe "smoke tests" should simply be a set of tests we deem important orindicative of the general health of AS7 with respect to each subsystem.As it stands now, "smoke" is its own module with a bunch ofEmbedded-based tests, and I think these should move to theorganizational structure in 1) and instead we can apply some filteringto make the "smoke" some default set of includes.3) An authoritative maintainerI'd like to treat the Arquillian and TestSuite modules as truesubsystems of the Application Server, and as such we'll need someone toassume the responsibility to review incoming commits/pull requests andensure they fit the criteria for acceptance. Simple things likeconsistent package names, using ARQ correctly, and not leakingdependencies are very important.So assuming we come to agreement on these points, I'd like to requestpush access to the AS7 repo to field testsuite and ARQ-related pullrequests....there's much more to discuss (I've more issues to raise alongside theupcoming EAP requirements), but let's start with those first 3 majorpoints and my POC, and run from there.S,ALR_______________________________________________jboss-as7-dev mailing listjboss-as7-dev@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/jboss-as7-dev_______________________________________________jboss-as7-dev mailing listjboss-as7-dev@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/jboss-as7-dev_______________________________________________
jboss-as7-dev mailing list
jboss-as7-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev