Pregunta

Si crea un proyecto de ActionScript puro en Flex Builder 3 y desea hacer las pruebas unitarias utilizando FlexUnit, ¿cuál es la mejor opción?

El constructor incorporado en Flex se negará a generar el archivo que contiene el componente mxml TestRunnerBase ya que es un proyecto de ActionScript pura (sin Flex permitido). Es imposible añadir el archivo mxml a la lista de "Aplicaciones de ActionScript" en la configuración del proyecto.

En este momento puedo ver dos opciones, ambas indeseables.

  1. Añadir el archivo mxml pruebas unitarias para el proyecto y crear una configuración de herramienta externa para construir y ejecutarlo. Este es el enfoque que estoy tomando ahora, y funciona bien, excepto que la depuración interactiva es imposible.
  2. Crear un nuevo proyecto Flex sólo para el archivo MXML de prueba y añadir directorio src del proyecto principal como una fuente adicional de directorio en las opciones de compilación. No me gusta este enfoque, ya que requiere que guardo el archivo MXML en un árbol de directorios separados de todos los demás archivos de origen, además de la fealdad de mantenimiento de dos proyectos.
¿Fue útil?

Solución

Siempre hay AsUnit .

Otros consejos

Me acabó poniendo el archivo mxml prueba de unidad en el proyecto original, la creación de un nuevo proyecto Flex, eliminar el directorio src, y su sustitución por un Eclipse ligado carpeta al directorio src del proyecto de ActionScript. Esta configuración parece funcionar bien.

Hemos hecho algo similar con el fin de obtener FlexUnit trabajar con CruiseControl.net (servidor de integración continua).

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

La forma de salida de los resultados de las pruebas de unidad es totalmente suya. Nuestra aplicación se ha utilizado con el aire y el Zinc3 y tanto la salida una representación XML NUnit ambiente y luego salir de la aplicación (con el código de salida -1 si las pruebas no).

// 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 {}

Tal vez usted podría utilizar flexunit.textui.TestRunner, que enviar el resultado a la consola.

Hemos eliminado casi todo el código que queremos poner a prueba en proyectos de bibliotecas. A continuación, sólo tenemos un proyecto separado para nuestras pruebas, que es un proyecto Flex, que depende del proyecto que se está probando.

Trate AS3Unit de libspark. También tienen un kit de prueba beta asíncrono.

Trate de AS3Unit libspark. También tienen un kit de prueba beta asíncrono.

quitar el elemento '' excludedEntries en .actionScriptProperties de su proyecto de archivo debe trabajar, yo uso esta manera de construir archivo MXML en mi proyecto ActionScript puro.

Se puede extraer de la forma en que hemos establecimos la acumulación de Robotlegs usando FlexUnit4 y sus tareas de hormigas CI.

Para el control de versiones que tira a todos los archivos del proyecto Flex / Flash Builder. src y de prueba carpetas se establecen tanto como caminos src. Las pruebas son rand a través de la acumulación de hormigas. Alternativamente, un segundo proyecto con un corredor se puede configurar si la vida del corredor de prueba visual.

Ha sido muy eficaz y fácil de usar a través de muchos contribuyentes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top