Will do (will be tomorrow now, its getting late for me!), thanks for the
link!

Jon
On Oct 5, 2011 12:02 AM, "Mark Struberg" <[email protected]> wrote:
> You could take a look at what Dan and I did for native owb:
>
> https://github.com/struberg/arquillian-container-openwebbeans
> LieGrue,
> strub
>
>
> ----- Original Message -----
>> From: Jonathan Gallimore <[email protected]>
>> To: [email protected]
>> Cc:
>> Sent: Wednesday, October 5, 2011 12:57 AM
>> Subject: Re: Arquillian adapters
>>
>> On Thu, Sep 29, 2011 at 12:13 AM, Jonathan Gallimore <
>> [email protected]> wrote:
>>
>>>
>>>
>>> On Thu, Sep 29, 2011 at 12:01 AM, David Blevins
>> <[email protected]>wrote:
>>>
>>>>
>>>> On Sep 28, 2011, at 3:36 PM, Jonathan Gallimore wrote:
>>>>
>>>> > When I hacked up the Remote with zip adapter I intended to
>>>> > merge it into the remote adapter - along the lines of: check to
>> see if
>>>> TomEE
>>>> > is running on the port specified in arquillian.xml. If it is, just
>>>> deploy
>>>> > straight to it. If not, go grab the zip and use that. Does that
>> sound
>>>> like a
>>>> > reasonable idea?
>>>>
>>>> Very reasonable.  That's what the itests have done for years, the
>> CDI TCK
>>>> does and the Java EE TCK setup does.
>>>>
>>>> It's pretty easy to have the rule of "if you don't want us
>> to start a
>>>> server, make sure a server is started"
>>>>
>>>
>>> Cool, I'll get that done.
>>>
>>
>> I've extended the remote adapter to allow this. If you specify something
>> like (note the 1.0.0-beta-1 OpenEJB version and no Tomcat version):
>>
>> <arquillian
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> xsi:schemaLocation="http://jboss.org/schema/arquillian
>> http://jboss.org/schema/arquillian/arquillian_1_0.xsd";>
>>       <container qualifier="tomee" default="true">
>>           <configuration>
>>               <property
>> name="dir">/tmp/arquillian-apache-tomee</property>
>>               <property name="httpPort">9080</property>
>>               <property name="stopPort">9005</property>
>>               <property name="tomcatVersion"></property>
>>               <property
>> name="openejbVersion">1.0.0-beta-1</property>
>>           </configuration>
>>       </container>
>> </arquillian>
>>
>> if nothing is running on port 9080 we'll download TomEE, unzip it, start
it
>> and use that for the test.
>>
>> If you changed the OpenEJB and Tomcat versions to, say:
>>
>>               <property
>> name="tomcatVersion">7.0.21</property>
>>               <property
>> name="openejbVersion">4.0.0-beta-1</property>
>>
>> We'd download Tomcat and the OpenEJB.war, set that up, and use that
instead.
>> So we should be able to use this to test against Tomcat 5.5/6 with
OpenEJB.
>>
>> I quite like this, but it would be great to get any feedback.
>>
>>
>>>
>>>
>>>>
>>>> > That leaves the embedded-with-war adapter as something that might
>> seem a
>>>> bit
>>>> > odd. Currently I can't get it to run correctly, but that might
>> be
>>>> something
>>>> > wrong with my machine. What's people's opinion of this
>> method? Should we
>>>> > drop this, or is it a useful adapter to hang on to?
>>>>
>>>> My impression is I would never ever advise a user to use it.  That
>> said,
>>>> it's an absolutely fabulous way for us to test the drop-in-war
>>>> functionality.  Well, almost fabulous... the real world scenario is an
>>>> existing Tomcat install, not an embedded one.
>>>>
>>>> Either way, if we say to people "you can do this and it
>> works!" having an
>>>> adapter for it us a must.  Especially if we get things to the point
>> where we
>>>> can easily reuse the full set of tests on each adapter.  At that point
>> we
>>>> just need to hook up each adapter with a buildbot builder and suddenly
>> we
>>>> have a dreamlike level of testing for the various features we offer.
>>>>
>>>
>>> We shouldn't have any issues getting the tests to run on all the
>> adapters.
>>> Worst case we can use Maven profiles and run the tests against the
embedded
>>> adapter by default, and you just switch profile to use the other modes.
The
>>> buildbot builders can then presumably be setup with the necessary
profile
>>> switch in their build.
>>>
>>> I was thinking it would be cool to try and extend either the test suite
or
>>> the Arquillian test runner somehow so the test then runs against all the
>>> adapters in one go.
>>>
>>> I was going to do the Maven profile bit first, as that should be
reasonably
>>> straightforward, and then take it from there.
>>>
>>>
>>
>> I've done some refactoring around the Arquillian test suite, so the tests
>> now run against both adapters. Currently we have ~6 failures and 2 errors
>> for both adapters, and it should be the same tests in both cases. We
>> currently run 82 tests.
>>
>> This was a pretty bug refactor - it seemed like things worked well in the
>> embedded case, because everything is right there on the classpath.
Running
>> remotely a lot of tests failed as they relied on the test or junit being
>> available from the app being tested. I've separated the inner classes
out,
>> divided things up into packages and tried to move a couple of methods to
>> trim what would need to be added to the Shrinkwrap archives. We still
need
>> junit in a couple of cases, so in a couple of places we add that in as a
>> lib. Hope that's all ok. There's probably some duplicate classes we
>> could
>> chop out.
>>
>> Running the tests can be done by running the test Maven goal in the
>> arquillian-tomee-tests module. Choosing which adapter to use is done by
>> enabling a Maven profile. By default we run against the embedded adapter
>> (arquillian-tomee-embedded). Doing a 'mvn -Parquillian-tomee-remote clean
>> install' will build and test against the remote adapter. If you're using
>> an
>> IDE plugin such as m2e, you should be able to specify the desired Maven
>> profile in your IDE settings and the tests should run straight from the
IDE
>> (works for me in Eclipse) - please shout if you have trouble, I'll be
more
>> than happy to help!
>>
>> Jon
>>

Reply via email to