CruiseControl on the Mac - modifying the build script to work x-platform

June 12, 2007

So, I thought I was doing pretty well, getting svn working on the mac, installing cruisecontrol, even getting SCPlugin working with unsigned certificates. Then I tried to run my ant build, and ended up having all sorts of problems getting my mac debug player to run. Some investigating and help from the ANT folks later, and I have a solution

Continue reading "CruiseControl on the Mac - modifying the build script to work x-platform" »

Restarting cruisecontrol on Mac OSX

June 11, 2007

OK, so for those of you who know Unix better than me (which is probably most of you) this post will be like teaching your granny to suck eggs, but for the rest of us, it took me some working out how to stop and start the cruisecontrol server instance on the mac...

Continue reading "Restarting cruisecontrol on Mac OSX" »

CruiseControl on Mac OSX

June 08, 2007

So, I've got this shiny new mac provided by my new employers, and so I figured I'd put it to use as a CruiseControl build manager. I found the process reasonably simple but, just like the process of setting up Subversion and SCPlugin, there are a couple of extra steps I figured I'd share...

Continue reading "CruiseControl on Mac OSX" »

FlexUnit / ASUnit deathmatch results

July 02, 2006

As I mentioned a few posts ago, I am looking into how asunit and flexunit can fit into our continuous integration set up. The move into AS3 has given me an opportunity to reassess how the 2 frameworks fit my/our needs. The prior post set out the criteria I was testing against - here is what I found...

Continue reading "FlexUnit / ASUnit deathmatch results" »

FlexUnit UI factory

June 16, 2006

When I started looking into how we could use flexunit in our CI build, I was struck by how the UI is closely linked to the actual running of the test suite. I really wanted to be able to use the supplied flexunit GUI out of the box - after all, it does everything the developer needs, and yet in order to have the results understood by our build process, we would need the results printed out differently.

To acheive this, my Flexunit test harness uses a factory method pattern to decide how torunthe test suite. Here's how...

Continue reading "FlexUnit UI factory" »

FlexUnit for Cruise Control - XML output

June 16, 2006

If you read my earlier posts on Flex and continuous integration, you will remember that we had to do some work to get ASUnit to spit out its results in a manner that would be understood by Cruise Control. We built a log parser to parse results from the Flash players trace file into an XML file detailing the unit test results, and also a simple status file saying if the test suite succeeded or failed. Here's how I got FlexUnit to print out results that will be understood by our parser...

Continue reading "FlexUnit for Cruise Control - XML output" »

Asyncronous test setup with flexunit

June 15, 2006

As part of my evaluation of flexunit and ASUnit for continuous integration, one of the rquirements is the ability to have an asynchronous test setup. Lets say you have a class under test that requires some XML in its constructor, and ideally you want to load that XML from an external source. While this doesnt work straight out of the box for flex unit, I found a very simple way to do this. Basically, Flexunit runs its TestCases by executingthe setUp method, then runMiddle() which runs the normal test method or the next asyncronous test. So the trick here is to get runMiddle to execute only when we are ready for it. This question had come up on the Flexcoders mailing list before, and Matt Chotin suggested a possible solution. Here's mine:

Continue reading "Asyncronous test setup with flexunit" »

Unit test frameworks for AS3 and Continuous Integration

June 15, 2006

Im currently evaluating FlexUnit and ASUnit as we move over to AS3 and seeing how they will fit in with our continuous integration suite. As you may have read in my previous posts on CI, we ended up significantly reworking ASUnit to get it to integrate with our needs for CI. What we are really looking for now is a framework we do not have to monkey around with too much to acheive our needs. The unit test framework we use needs to fulfil the following:


  • Simple syncronous tests

  • asynchronous tests

  • asynchronous setup (e.g. if you ned to load in some data before performing the tests)

  • printing the test result out to a log file so that Cruise Control can interpret the results

  • broadcast some sort of event when the test suite is complete so we can close the test harness and continue with the build

  • works equally well outside of the flex framework


I'll be looking at both FlexUnit and ASUnit to see which one will work for our needs best. Ideally I would like to offer up solutions to using both so that you can fit CI into any testing framework you are currently using. I'll post my findings as I find them, so stay posted...

Continuous Integration with Flex - Part 6

May 31, 2006

In this, the final entry on CI with Flex, I look at an extra change we made to the ASUnit sources, take a look at what CI has done for us, and finally let you in on what we are looking at next...

Continue reading "Continuous Integration with Flex - Part 6" »

Continuous Integration with Flex - Part 5

May 31, 2006

This is the penultimate installment of the CI saga, and its the last step you will need to take to get your continuous integration suite up and running. The first thing you will need to do is install CruiseControl onto your build monitoring machine. The first thing I did was get it up and running on my machine, and then re-follow my steps on a server.

CruiseControl is an open source build monitoring tool. The good thing about it is that it can be easily configured using an XML file, has plugins to lots of other tools , and has a simple to understand web based interface. I just installed from the binaries, and followed these quickstart instructions. One thing I did have to do that wasnt covered in the instructions is set an environment variable, JAVA_HOME to the location of java on my machine (in my case: C:\Program Files\Java\jdk1.5.0_04). Once you have it up and running with the simple connectfour example, we are ready to get going with our flex project.

Continue reading "Continuous Integration with Flex - Part 5" »

Continuous Integration with Flex - Part 4

May 29, 2006

Ok, so far so good. We had covered a lot of ground up to this point, but we were only part of the way there… The next step is to get our test results understood by ANT. Ikezi created a natty python script to parse the output of our flash logfile using some cunning regular expressions. Basically, it looks for a multiple line match of __TRACERUNNEROUTPUTBEGINS__(somestuff in here)__TRACERUNNEROUTPUTENDS__, then parses the match and places the test result (true / false) into a test status text file, and the XML portion into another log file.

Continue reading "Continuous Integration with Flex - Part 4" »

Continuous Integration with Flex - Part 3

May 29, 2006

So, if you have got this far, your ant build will compile the test harness, which quits after a specified period of time, and then compiles the main build. So far, so good, but it’s not really rocking yet; what we now need to do is get our ANT build to know if our unit tests have actually passed or not (and later down the line by the build monitor). The trick here is to get your swf to somehow output to a textfile that can then be read & understood by the ant build.

Continue reading "Continuous Integration with Flex - Part 3" »

Continuous Integration with Flex - Part 2

May 29, 2006

In the next step to CI Nirvana, I'm going to be looking at using ANT to build both our testHarness and the main mxml file. As I mentioned in my previous post, the job we need ANT to do is get it to compile the testHarness, wait for it to close, then compile your main build.

Continue reading "Continuous Integration with Flex - Part 2" »

Continuous Integration with Flex - Part 1

May 27, 2006

The first step for getting your CI build up and running will be to get all your basic pieces in place on your local machine.
Some of this stuff (I hope) you will already have in place, but for the sake of being complete I'll include it here...

Continue reading "Continuous Integration with Flex - Part 1" »

Continuous Integration with Flex - Introduction

May 27, 2006

The contract I am currently working on is for a large financial institution in Boston. They want to explore new ways of working in our small business unit with the hope that some of our work may make it into the mainstream of the company.

We are not only experimenting with the projects we work on, but also trying out new (for the company at least) ways of working.

So, when my manager came to me late last year and started asking what we could look at next, there was a challenge that I and my workmates (Peter Hall, Ikezi Kamanu and Johannes Nel) had been looking to get our teeth into for a while — Continuous Integration with Flex.

Continue reading "Continuous Integration with Flex - Introduction" »

Main

Syndicate

Add to Technorati Favorites Powered by
Movable Type 3.2

Holiday Fund