royale flexjs examples flex actionscript flexbuilder flexunit

flexjs - flex ide



Flexunit con proyecto de ActionScript puro en Flex Builder 3 (9)

Terminé colocando el archivo unit prueba mxml en el proyecto original, creando un nuevo proyecto Flex, eliminando el directorio src y reemplazándolo con una carpeta vinculada Eclipse al directorio src del proyecto ActionScript. Esta configuración parece funcionar bien.

Si crea un proyecto de ActionScript puro en Flex Builder 3 y desea realizar pruebas de unidades con flexunit, ¿cuál es la mejor opción?

El constructor de Flex incorporado se negará a compilar el archivo mxml que contiene el componente TestRunnerBase, ya que es un proyecto de ActionScript puro (no se permite Flex). Es imposible agregar el archivo mxml a la lista "Aplicaciones de ActionScript" en la configuración del proyecto.

En este momento puedo ver dos opciones, ambas indeseables.

  1. Agregue la unidad que prueba el archivo mxml al proyecto y cree una configuración de herramienta externa para compilarlo y ejecutarlo. Este es el enfoque que estoy tomando ahora, y funciona bien, excepto que la depuración interactiva es imposible.
  2. Cree un nuevo proyecto Flex solo para el archivo mxml de prueba y agregue el directorio src del proyecto principal como un directorio fuente adicional en las opciones de compilación. No me gusta este enfoque porque requiere que guarde el archivo mxml en un árbol de directorios separado de todos los demás archivos fuente además de la fealdad de mantener dos proyectos.


Hemos hecho algo similar para que FlexUnit funcione con CruiseControl.net (servidor de integración continua).

En nuestra implementación, tenemos el siguiente código ejecutado en el controlador FlexEvent.CREATION_COMPLETE de la clase Application.

La forma en que muestra los resultados de las pruebas unitarias depende completamente de usted. Nuestra implementación se ha utilizado con AIR y Zinc3 y ambos generan una representación XML amigable con NUnit y luego salen de la aplicación (con un código de salida de -1 si falla alguna prueba).

// import mx.core.Application; // import flexunit.framework.*; // class AutomatedTestHarness extends Application implements TestListener private function creationCompleteHandler(event : Event) : void { this._result = new TestResult(); this._result.addListener(this); var testSuite : TestSuite = new TestSuite(); this.addUnitTests(testSuite); testSuite.runWithResult(_result); } /** * Implement these as part of TestResult.addListener * If you want to output xml after the tests run, do so here * (Tip: Count tests in endTest and compare the count to testSuite.countTestCases() * to find out when all tests have completed) */ function startTest(test : Test) : void {} function endTest(test : Test) : void {} function addError(test : Test, error : Error) : void {} function addFailure(test : Test, error : AssertionFailedError) : void {}


Hemos factorizado todo el código que queremos probar en los proyectos de la biblioteca. Luego tenemos un proyecto separado para nuestras pruebas, que es un proyecto flexible, que depende del proyecto bajo prueba.


Tal vez podría usar flexunit.textui.TestRunner, que muestra el resultado en la consola.


Pruebe AS3Unit desde libspark. También tienen un kit de prueba asíncrono.


Pruebe AS3Unit desde libspark. También tienen un kit de prueba asíncrono.


Puede ver cómo hemos configurado la construcción de Robotlegs utilizando FlexUnit4 y sus tareas de CI y hormiga.

Para el control de la versión, eliminamos todos los archivos del proyecto de Flex / Flash Builder. src y las carpetas de prueba están configuradas como rutas src. Las pruebas son rand a través de la compilación de ant. Alternativamente, un segundo proyecto con un corredor puede configurarse si usted vive el corredor de prueba visual.

Ha sido muy efectivo y fácil de usar para muchos colaboradores.


elimine el elemento ''excludedEntries'' en el archivo .actionScriptProperties de su proyecto debería funcionar, lo uso de esta manera para crear un archivo mxml en mi proyecto puro actionscript.