Today I created my first unit tests for Flex code using FlexUnit. Later I integrated the tests with the maven build using Flex Mojos. Flex-Mojos is a collection of maven-plugins created to work with Flex.
We have to use the Flex Compiler Plugin. This plugin is basically used to compile the source files and run tests. This plugin has 5 goals which are bound to different maven lifecycles. I chose to explicitly specify goals that I want maven to run. Maven has a default value for testSourceDirectory as src/test/java. For using Flex mojos, we have to specify testSourceDirectory as src/test/flex. Make sure all your tests are created under this directory.
<build> <sourceDirectory>src/main/flex</sourceDirectory> <testSourceDirectory>src/test/flex</testSourceDirectory> <plugins> <plugin> <groupId>info.flex-mojos</groupId> <artifactId>flex-compiler-mojo</artifactId> <version>${flex-mojos.version}</version> <extensions>true</extensions> <executions> <execution> <goals> <goal>compile-swf</goal> <goal>test-compile</goal> <goal>test-run</goal> </goals> </execution> </executions> <configuration> <locales> <param>en_US</param> </locales> <contextRoot>/</contextRoot> </configuration> </plugin> </plugins> </build>
Next thing is to add Flex Unit dependency in the dependency section.
<dependencies> <dependency> <groupId>flexunit</groupId> <artifactId>flexunit</artifactId> <version>0.85</version> <type>swc</type> <scope>test</scope> </dependency> <dependency> <groupId>flexunit.junit</groupId> <artifactId>flexunit-optional</artifactId> <version>0.85</version> <type>swc</type> <scope>test</scope> </dependency> </dependencies>
You would also need flash player installed on the build server. In case if you end up with OutOfMemory error, increase the heap size using MAVEN_OPTS in mvn.bat file.
SET MAVEN_OPTS=-Xmx128m
If you need more help, you can always refer the FlexUnit Example.