Domanda

Se si crea un progetto puro ActionScript in Flex Builder 3 e vuole fare unit testing utilizzando FlexUnit, qual è l'opzione migliore?

Il built-in Flex Builder si rifiuterà di creare il file MXML contenente il componente TestRunnerBase in quanto è un progetto di puro ActionScript (senza Flex consentito). E 'impossibile aggiungere il file MXML alla lista "Applicazioni ActionScript" nelle impostazioni del progetto.

In questo momento vedo due opzioni, entrambe indesiderabili.

  1. Aggiungi il file MXML test delle unità per il progetto e creare una configurazione di strumento esterno per costruire ed eseguirlo. Questo è l'approccio che sto prendendo ora, e funziona bene, tranne che il debug interattivo è impossibile.
  2. Creare un nuovo progetto Flex solo per il file MXML di prova e aggiungere directory src del progetto principale come una directory fonte aggiuntiva nelle opzioni di generazione. Non mi piace questo approccio perché richiede che tengo il file MXML in un albero di directory separata da tutte le altre file di origine, oltre alla bruttezza del mantenimento di due progetti.
È stato utile?

Soluzione

C'è sempre AsUnit .

Altri suggerimenti

ho finito per mettere il file MXML unit test nel progetto originale, la creazione di un nuovo progetto Flex, cancellando la directory src, e la sua sostituzione con un Eclipse legata cartella nella directory src del progetto ActionScript. Questa configurazione sembra funzionare bene.

Abbiamo fatto qualcosa di simile, al fine di ottenere FlexUnit lavorare con CruiseControl.net (server di integrazione continua).

Nella nostra implementazione, abbiamo il codice qui sotto corsa nel gestore FlexEvent.CREATION_COMPLETE della classe Application.

Come si uscita i risultati dei test di unità è completamente a voi. La nostra implementazione è stato utilizzato sia con AIR e Zinc3 ed entrambi in uscita una rappresentazione XML NUnit-friendly e quindi chiudere l'applicazione (con un codice di uscita -1 se qualsiasi test fallito).

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

Forse si potrebbe usare flexunit.textui.TestRunner, quale uscita il risultato alla console.

Abbiamo scomposto fuori tutto il codice che vogliamo testare in progetti di libreria. Abbiamo poi resta che un progetto separato per i nostri test, che è un progetto flessibile, che dipende dal progetto in esame.

AS3Unit da libspark. Essi hanno anche un kit per il test beta asincrona.

Prova AS3Unit da libspark. Essi hanno anche un kit per il test beta asincrona.

rimuovere l'elemento '' excludedEntries in .actionScriptProperties del vostro progetto del file dovrebbe funzionare, io uso questo modo di costruire file MXML nel mio progetto ActionScript pura.

È possibile controllare come abbiamo istituito la compilazione per Robotlegs utilizzando FlexUnit4 e i loro compiti formica Ci.

Per il controllo di versione nudo fuori tutti i file di progetto Flex / Flash Builder. cartelle src e di test sono entrambe impostate su percorsi come src. I test sono rand tramite la compilazione formica. In alternativa, un secondo progetto, con un corridore può essere impostato se la vita del corridore test visivo.

E 'stato molto efficace e facile da usare in molti collaboratori.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top