Hi Thomas, all, Status ---------------- Tests are going fine (I got a few bugs in the RAL, but solved them. Mostly because of not checking for 'null' :-) ). I am feeling happy about the achievement. When using the RAL (Its similar to Data Access Layer in apps ;-)) we get about 5:1 reduction of code even in the simplest case. See this sample Direct rpc. ---------------- *Page page=new Page();* * page.setName(pageName);* * page.setSpace(spaceName);* * page.setWiki(wikiName);* * rpc.addPage(wikiName, spaceName, pageName, page);* * Object o=new Object();* * o.setClassName("Blog.BlogPostClass");* * Property content=new Property();* * content.attributes=new ArrayList<Attribute>();//needed by simple xml serializer * * Property category=new Property();* * category.attributes=new ArrayList<Attribute>();* * Property published=new Property();* * published.attributes=new ArrayList<Attribute>();* * content.name="content";* * content.value="BlogPost in to be updated document";* * category.setName("category");* * category.setValue("Blog.Other");* * published.setName("published");* * published.setValue("1");* * o.withProperties(content,category,published);* * rpc.addObject(wikiName, spaceName, pageName, o);* Using RestFul-Access-Object and Xwiki Model. -------------------------------------------------------------------------- * Document doc=new Document(wikiName, spaceName, pageName);* * XBlogPost bo=new XBlogPost();* * bo.setCategory("Blog.Other");* * bo.setPublished(true);* * bo.setContent("BlogPost in to be updated document");* * rao.create(doc);* * * Even better RAL allows many enhancements behind the scenes. For example it can have multiple Http Connections when retrieving a doc and etc. (But I couldn't implement these paralleled strategies. Also I noted that current RestClient(actually named as Requests) in xwiki android makes a HttpClient for every rpc call. I started up work on a new Rest Client that uses a single apache HttpClient with a Pooled Connection Manager. So there is a major re factor to be done there.) Best Regards. * * On Wed, Aug 15, 2012 at 9:16 PM, sasinda rukshan <[email protected]>wrote:
Hi,
I removed the "*/.." *from the path were the xwiki server was to unpack. Now the tests are running quite well. :-)
Regards.
On Tue, Aug 14, 2012 at 10:21 PM, sasinda rukshan < [email protected]> wrote:
hi,
Not Jenkins, Maven. ;-) meant the server ,since it starts mvn I think . :-)
I made a J2SE module to startup server and create the test pages needed by all test modules. Seperate J2SE module was made because the AVD does not have direct access to server's file system. Anyway its better because for all test modules we start the server only once.
There are some issues though, Here are the extracts from jenkins console output.
Unpacking /home/hudsonagent/.m2/repository/org/xwiki/enterprise/xwiki-enterprise-jetty-hsqldb/4.1.3/xwiki-enterprise-jetty-hsqldb-4.1.3.zip to */home/hudsonagent/hudson_root/workspace/xwiki-android-client/target/test-server/xwiki-enterprise-jetty-hsqldb-4.1.3/*.. with includes "" and excludes ""
.....
xwiki execution dir:/home/hudsonagent/hudson_root/workspace/xwiki-android-client/target/test-server/xwiki-enterprise-jetty-hsqldb-4.1.3 index: 0 server Url: localhost:8080 Starting XWiki server at [http://localhost:8080]
.....
sleeping 3 sec allowing xwiki to start Exception in thread "Thread-1" java.lang.RuntimeException: java.lang.Exception: Invalid directory from where to start XWiki [/home/hudsonagent/hudson_root/workspace/xwiki-android-client/target/test-server/xwiki-enterprise-jetty-hsqldb-4.1.3] at org.xwiki.test.integration.utils.XWikiExecutor$1.run(XWikiExecutor.java:206) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.Exception: Invalid directory from where to start XWiki [*/home/hudsonagent/hudson_root/workspace/xwiki-android-client/target/test-server/xwiki-enterprise-jetty-hsqldb-4.1.3*]
Well it ran in my windows 7(x64) machine.
What is the problem here?
By the way I bound the dependancy plugin's unpack goal to compile lifecycle phase. It did not work when bound to 'pre-integration-test' phase as was the case in the example you gave me.
Anyway it has nothing to do with above error.
Regards
Sasinda.
On Mon, Aug 13, 2012 at 2:04 PM, Thomas Mortagne < [email protected]> wrote:
On Sun, Aug 12, 2012 at 7:50 PM, sasinda rukshan <[email protected]> wrote:
Hi Thanks for pointing out. Do we have to unzip a distribution each time an automatic build runs?
Yes.
... <phase>pre-integration-test</phase> <goals>
<goal>unpack</goal> </goals> ...
Cant we have an already unpacked one in the Jenkins server?
It's a matter of test isolation, it's way too slow to use a new instance for each test and it's going to be a real mess between tests which are all seting up the instance the way they need so we decided to use project as granularity.
Any way not a problem for me since Jenkins unzips it ;-).
Not Jenkins, Maven.
Thanks.
On Fri, Aug 10, 2012 at 12:53 PM, Thomas Mortagne <
wrote:
On Thu, Aug 9, 2012 at 2:13 PM, sasinda rukshan <[email protected]> wrote:
Hi, I checked executing xwiki from the XWiki Executor in my local machine. Cool its working ! :-)
System.setProperty("xwikiExecutionDirectory","D:\\Xwiki-server"); XWikiExecutor executor=new XWikiExecutor(0); executor.start();
Just need a unique index for Android project with a jetty deployment. ;-).
You should not provide the xwikiExecutionDirectory in java. You could do the same as in
https://github.com/xwiki/xwiki-enterprise/blob/master/xwiki-enterprise-test/...
and
https://github.com/xwiki/xwiki-enterprise/blob/master/xwiki-enterprise-test/...
. All test projects in
https://github.com/xwiki/xwiki-enterprise/blob/master/xwiki-enterprise-test
unzip the jetty/hsqldb distribution and set various system properties all that in maven before executing the first line of java.
Thanks. Regards.
On Thu, Aug 9, 2012 at 2:08 PM, sasinda rukshan <
wrote: > > Hi, > Thanks > All test modules need not be starting and shutting down a Xwiki instance. > I will write two modules which set up server fixture for all test modules > (rest-tests, core-tests, instrumentation-tests) and shut down the server at > completion of running all test modules. > Small issue though is server may not shutdown , because modules are > skipped by maven build when a test module fails. > > I'll have to write a separate J2SE module anyway, because the jenkins > server's file system cannot be directly accessed by the emulator. > > Thanks. > Best Regards. > Sasinda Rukshan. > > > On Wed, Aug 8, 2012 at 1:32 PM, Thomas Mortagne > <[email protected]> wrote: >> >> On Wed, Aug 8, 2012 at 5:40 AM, sasinda rukshan >> <[email protected]> wrote: >> > Hi , >> > thnks a lot. >> > I checked the earlier android test code. It has not call to >> > startXWiki() neither >> > refers a XWikiExecutor. >> > Any way all 3 test modules just need one fresh instance started. Don't >> > need >> > an XWiki instance started for each module. >> > But easiest way is to do it for each module. >> >> Yes. >> >> > >> > Chamika has used local host. >> >> I actually don't have much idea yet how those tests were supposed to >> work. I can assure you there is no permanent running XWiki on this >> jenkins agent and never was. I actually tough Chamika was using >> xwiki.org (which seems to be the case for other tests) since he told >> me he did not had time to setup the test to start a local instance of >> XWiki like XE test are doing. Since the test were passing I did not >> dug more. >> >> > This is the properties file for tests >> > >> >
https://github.com/xwiki-contrib/android-client/commit/191c1cd1dd5db05622a88...
>> > >> > see the property: public static final String ATTACHMENT_NAME = >> > "a.png"; >> > >> > The server instance needs an attachment with name a.png in page >> > test2. >> > We can't achieve it in the setup because to achieve it we have to use >> > the >> > addAttachment() method which itself is one of the methods that need to >> > be >> > tested. >> >> You have two solutions here: >> * it's not a big deal to use addAttachment() IMO. All it means is that >> if addAttachment() has an issue several tests will fail instead of >> one but we want everything to work anyway. addAttachment() is tested >> several times instead of one basically. I would go for this one. >> * you can always bypass addAttachment() and directly use REST protocol >> in your test setup to attach the file like most tests do in >> >>
https://github.com/xwiki/xwiki-enterprise/tree/master/xwiki-enterprise-test
>> >> > >> > Best Regards >> > Sasinda. >> > >> > On Tue, Aug 7, 2012 at 12:52 PM, Thomas Mortagne >> > <[email protected]>wrote: >> > >> >> On Tue, Aug 7, 2012 at 4:33 AM, sasinda rukshan >> >> <[email protected]> wrote: >> >> > Hi Thomas, >> >> >>>I restarted it and it seems ok now. >> >> > Thanks a lot. >> >> > Instrumentation tests that check the activities are running ok. >> >> > (XWiki Android Instrumentation >> >> > Tests< >> >> >> >>
http://ci.xwiki.org/job/xwiki-android-client/216/org.xwiki.android$xwiki-and...
>> >> > >> >> > ) >> >> > >> >> > I disabled the base rest api tests (xwiki-android-test-rest). I'll >> >> > enable >> >> > them in the next commit. >> >> > There should be a local xwiki test instance in jenkins server as >> >> > well. >> >> Can >> >> > you tell me how to access it. >> >> >> >> Actually there is none. What we do is that in all the tests that needs >> >> an instance of XWiki we start XWiki before and stop it after (before >> >> and after the whole test suite not for each test otherwise it would >> >> way too slow) to be sure to have a clean instance of XWiki every time >> >> and to not require anything in order to execute the test (for example >> >> you can build the whole XE with test anywhere as long as you have >> >> maven and Firefox installed). >> >> >> >> In "desktop" integration test what is taking care of starting and >> >> stopping XE instance from the tests is >> >> >> >> >> >>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwik...
>> >> through >> >> >> >>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwik...
>> >> . >> >> >> >> > Tried http://ci.xwiki.org:8080. Since the test properties are >> >> > directing >> >> to >> >> > a local server instance 10.0.2.2:8080 it should be there. >> >> > >> >> > We will be running tests bottom up. i.e. low lvl rest API --> Rest >> >> > API >> >> in >> >> > RAL --> application layer UI components. And RAL tests will use low >> >> > lvl >> >> > rest API to achieve its pre-conditions and do cleanup after tests. >> >> > If low >> >> > level fails testing highlvl ones are not meaningful if they depend >> >> > on the >> >> > components that failed. ;-). >> >> > >> >> > Best Regards. >> >> > Sasinda. >> >> > >> >> > >> >> > >> >> >> >> >> >> >> >> >> On Mon, Aug 6, 2012 at 1:00 PM, Thomas Mortagne < >> >> [email protected] >> >> >> > wrote: >> >> >> >> >> >>> On Mon, Aug 6, 2012 at 9:12 AM, Thomas Mortagne >> >> >>> <[email protected]> wrote: >> >> >>> > On Mon, Aug 6, 2012 at 9:10 AM, Thomas Mortagne >> >> >>> > <[email protected]> wrote: >> >> >>> >> On Mon, Aug 6, 2012 at 8:57 AM, Thomas Mortagne >> >> >>> >> <[email protected]> wrote: >> >> >>> >>> On Sun, Aug 5, 2012 at 5:42 PM, sasinda rukshan >> >> >>> >>> <[email protected]> wrote: >> >> >>> >>>> Hi Thomas, >> >> >>> >>>> :-) >> >> >>> >>>> Also still we cannot ignore failed tests in maven android >> >> >>> >>>> plugin. >> >> If >> >> >>> a test >> >> >>> >>>> fails we get Build Failure as result. >> >> >>> >>> >> >> >>> >>> Well that's the whole point, not sure why you want to ignore >> >> failing >> >> >>> tests. >> >> >>> >>> >> >> >>> >>>> http://code.google.com/p/robotium/issues/detail?id=130 >> >> >>> >>>> >> >> >>> >>>>> Need an AVD / Device connected to Jenkins to >> >> >>> >>>> run the tests. >> >> >>> >>>> I think you just have to download android sdk to the jenkins >> >> server >> >> >>> and use >> >> >>> >>>> avd-manager to start up an avd in it. >> >> >>> >>>> Not urgent ;-). >> >> >>> >> >> >> >>> >> Well thing is there is an AVD running and always have (since it >> >> >>> >> was >> >> >>> >> required by previous tests) so I don't understand exactly >> >> >>> >> what's >> >> >>> >> wrong. >> >> >>> > >> >> >>> > Here is what I have in ps aux: >> >> >>> > >> >> >>> > emulator -avd test-2.1 -noaudio -no-window -wipe-data >> >> >>> >> >> >>> Looks like it was not in a very good state actually, I restarted >> >> >>> it >> >> >>> and it seems ok now. >> >> >>> >> >> >>> > >> >> >>> >> >> >> >>> >>>> >> >> >>> >>>> Still writing tests for core module. >> >> >>> >>>> >> >> >>> >>>> Regards. >> >> >>> >>>> Sasinda Rukshan. >> >> >>> >>>> >> >> >>> >>>> On Sun, Aug 5, 2012 at 8:49 PM, Thomas Mortagne < >> >> >>> [email protected]> >> >> >>> >>>> wrote: >> >> >>> >>>>> >> >> >>> >>>>> On Sun, Aug 5, 2012 at 4:46 PM, sasinda rukshan >> >> >>> >>>>> <[email protected]> wrote: >> >> >>> >>>>> > Hi Thomas, >> >> >>> >>>>> > Thnx. >> >> >>> >>>>> > >> >> >>> >>>>> >>No, you need to start one (which is not very hard with >> >> >>> jetty/hsqldb >> >> >>> >>>>> >>distribution) >> >> >>> >>>>> > Well what about the earlier project's test server. It >> >> >>> >>>>> > should >> >> have >> >> >>> had >> >> >>> >>>>> > its >> >> >>> >>>>> > test environment setup properly. Shouldn't it?. >> >> >>> >>>>> >> >> >>> >>>>> Yes it should have but Chamika did not had time to finish. >> >> >>> >>>>> >> >> >>> >>>>> > >> >> >>> >>>>> > >> >> >>> >>>>> >>(but then you have the risk that you don't >> >> >>> >>>>> >>have the exact same behavior) when you start the tests. >> >> >>> >>>>> >> You can >> >> >>> look >> >> >>> >>>>> >>at how >> >> >>> >>>>> >> >> >> >>> >>>>> >> >> >> >>> >> >> >> >>
https://github.com/xwiki/xwiki-enterprise/tree/master/xwiki-enterprise-test/...
>> >> >>> >>>>> >>does it for example. >> >> >>> >>>>> > Thanks. I'll make the setup, tear down methods to achieve >> >> >>> preconditions >> >> >>> >>>>> > and >> >> >>> >>>>> > cleanup. >> >> >>> >>>>> > >> >> >>> >>>>> > Best Regards. >> >> >>> >>>>> > >> >> >>> >>>>> > On Sun, Aug 5, 2012 at 7:14 PM, Thomas Mortagne >> >> >>> >>>>> > <[email protected]> >> >> >>> >>>>> > wrote: >> >> >>> >>>>> >> >> >> >>> >>>>> >> On Sun, Aug 5, 2012 at 11:42 AM, sasinda rukshan >> >> >>> >>>>> >> <[email protected]> wrote: >> >> >>> >>>>> >> > Hi Thomas, >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > This is the latest result for >> >> >>> xwiki-android-tests-instrumentation >> >> >>> >>>>> >> > (The >> >> >>> >>>>> >> > UI stress testing test module) >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > [INFO] *Found 0 devices connected with the Android >> >> >>> >>>>> >> > Debug >> >> >>> Bridge* >> >> >>> >>>>> >> > mojoFailed >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > >> >> >>> >> >> >> >>
com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.3.0(default-internal-pre-integration-test)
>> >> >>> >>>>> >> > projectFailed >> >> >>> >>>>> >> > >> >> >>> org.xwiki.android:xwiki-android-tests-instrumentation:1.0-SNAPSHOT >> >> >>> >>>>> >> > sessionEnded >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > Need an AVD / Device connected to Jenkins to run the >> >> >>> >>>>> >> > tests. >> >> >>> >>>>> >> >> >> >>> >>>>> >> Will look at it. >> >> >>> >>>>> >> >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > Also the ....test-rest will have failures if some >> >> >>> preconditions are >> >> >>> >>>>> >> > not >> >> >>> >>>>> >> > met. (like having a page named Blog/test2 ) >> >> >>> >>>>> >> > >> >> >>> >>>>> >> > Is there a testing server instance running on the >> >> >>> >>>>> >> > Jenkins >> >> >>> server?. >> >> >>> >>>>> >> >> >> >>> >>>>> >> No, you need to start one (which is not very hard with >> >> >>> jetty/hsqldb >> >> >>> >>>>> >> distribution) or mock one (but then you have the risk >> >> >>> >>>>> >> that you >> >> >>> don't >> >> >>> >>>>> >> have the exact same behavior) when you start the tests. >> >> >>> >>>>> >> You >> >> can >> >> >>> look >> >> >>> >>>>> >> at how >> >> >>> >>>>> >> >> >> >>> >>>>> >> >> >> >>> >> >> >> >>
https://github.com/xwiki/xwiki-enterprise/tree/master/xwiki-enterprise-test/...
>> >> >>> >>>>> >> does it for example. >> >> >>> >> >> >> >> >> > _______________________________________________ >> >> > devs mailing list >> >> > [email protected] >> >> > http://lists.xwiki.org/mailman/listinfo/devs >> >> >> >> >> >> >> >> -- >> >> Thomas Mortagne >> >> >> > _______________________________________________ >> > devs mailing list >> > [email protected] >> > http://lists.xwiki.org/mailman/listinfo/devs >> >> >> >> -- >> Thomas Mortagne > >
-- Thomas Mortagne
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Thomas Mortagne