The FlexAntTask will now fail the build if there is an error executing the test suite e.g. a socket timeout. In the past the error was swallowed as the server socket runs in a separate thread – any errors are now passed back to the task and re-thrown.
Binary distribution
Source Distribution
Example Project
Ant Task Parameters
|
Attribute
|
Description
|
Required |
|---|---|---|
| swf | The name of SWF containing the tests to execute. | Yes |
| port | The port to receive the test results on from FlexUnit. The default port is 1024. | No |
| timeout | The time in milliseconds to wait for results from FlexUnit before stopping the building process. The default is 60 seconds. You need to allow enought time for your tests to run as the socket is opended prior to the test execution. | No |
| toDir | The output directory for the test resutlts. The default is the working directory. | No |
| haltonfailure | Stop the build process if a test fails. The default is true. | No |
| failureproperty | The name of the property to set in the event of a failure. The default is ‘flexunit.failed”. | No |
| verbose | Causes the flexunit tasks to print status messages. The default is false. | No |

HI Peter,This might seem like a stupid question… So please bear with me…I have been trying to get FlexUnit and Flex working with Ant. I noticed your great posts about FlexUnit Ant Tasks…My question is.. Does the binary FlexAntTasks you have linked include the FlexAntTasks required to build flex applications as well? I.e. would I use these as a replaced to the ones supplied in the Flex 3 SDK?Thanks for your help in advancePlease keep the great Flex Unit Ant posts coming.RegardsMark
Thanks for the comment Mark.We seem to having a naming clash here. They are two different things. You will need both. I will look to rename mine or ideally see if I can my FlexUnitTask pushed in to the other FlexAntTasks.
Peter-Thanks for this. I hope it gets integrated into the flexunit project soon (which I also would love to contribute to!). Anyways, I think another caveat that isn’t mentioned is that you do in fact need to specify the port # within your test runner mxml to match whatever you specify with the flexunit task. Is there a more elegant way to inject the port # to the swf w/o jumping through hoops in terms of passing some parameters to the swf through the command line?-Tim
Hi Peter,Thanks very much for your FlexUnit Ant task, it’s a massive help for a lot of us Flex developers.One thing that I wanted to do was make it a bit easier to make it run headless. I’ve made the changes so that when running on Linux/Unix, you can pass in an extra parameter to the flexunit task that tells it what display to spawn the flashplayer on.Hopefully you’ll get your task added to the main Adobe flex ant tasks, but in the mean time, would you open source it and put it up on Google Code or somewhere for us to contribute?Thanks a lot,Kieran
Hi Tim,It will get moved over to the FlexUnit project, I have an action to do something about it
I didn’t think of setting the port# on the URL, good idea, I will take a look.CheersPeter.
Hi Kieran,I am interested to see what you have done around headless to make it easier.The plan is to move this code on to opensource.adobe.com under the FlexUnit project. I just need to make some time
ThanksPeter.
Hi Peter,It’s be great to see it integrated into the main Adobe code. I think a lot of people are using your stuff but I’m sure people better than I could make it even better.Basically all that I did was change the UnixSWFLauncher slightly so that it can take environment variables, or more specifically, you can put a “display” attribute on the flexunit task and it’ll add the “DISPLAY=:5″ or something like that to the exec that launches the flash player. My ant script then starts and stops a VNC server on the right display before/after the tests.This could be done by setting the DISPLAY in a script before you even run the ant build, but I prefer a pure ant solution. Although I must admit I’m having trouble with my continuous build in Hudson at the moment as it seems to be spawning the ant task is some strange way that it isn’t picking up my FlashPlayerTrust directory settings
Kieran
How do you use this when there are spaces in a path? It seems as though spaces aren’t escaped correctly and so if you have spaces in the file path (such as /User/marcus/Documents/Flex Builder 3/) the launch will fail. Is there any way around this short of modifying the source code to the launcher?
another +1 on getting this into the main flexunit svn.once enhancement i’d like to add is to have it send the stack trace to the clients, and it would be preferable to send a patch to an existing repo rather than forking the project.
Hi Marcus,I haven’t seen this issue before so I don’t know any immediate workarounds. I will take a look.ThanksPeter.
Hello Peter,I got this error when running flex unit from ant script. Do you know what happened here?## An unexpected error has been detected by HotSpot Virtual Machine:## EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d80f849, pid=980, tid=5532## Java VM: Java HotSpot(TM) Client VM (1.5.0_15-b04 mixed mode, sharing)# Problematic frame:# V [jvm.dll+0xcf849]## An error report file with more information is saved as hs_err_pid980.log## If you would like to submit a bug report, please visit:# http://java.sun.com/webapps/bugreport/crash.jsp#
Hi Peter,After MAX I promise to get the FlexUnit Ant task in to SVN, it is on my list of things to do.CheersPeter.
Hi Dozz,Ouch, not seen that one before.I found a couple of similar things on the Sun forums, but nothing too helpful:http://forums.sun.com/thread.jspa?threadID=5313996http://forums.sun.com/thread.jspa?threadID=5278505&tstart=270Can you try with a different JVM?CheersPeter.
I patched you ant task to output log messages in a TeamCity understandable format. That way TeamCity can show the testresults and will also maintain statistics. If you are interested in that patch drop me a note on how to get in contact with you.