Question

Si vous créez un projet pur ActionScript dans Flex Builder 3 et que vous voulez faire des tests unitaires à l'aide FlexUnit, quelle est la meilleure option?

Le haut-Flex Builder refusera de construire le fichier MXML contenant le composant TestRunnerBase comme il est un pur projet ActionScript (pas Flex autorisé). Il est impossible d'ajouter le fichier MXML à la liste « Applications ActionScript » dans les paramètres du projet.

En ce moment, je vois deux options, à la fois indésirable.

  1. Ajoutez le fichier MXML tests unitaires au projet et créer une configuration d'outil externe pour construire et exécuter. Telle est l'approche que je prends maintenant, et il fonctionne très bien, sauf que le débogage interactif est impossible.
  2. Créez un nouveau projet Flex juste pour le fichier MXML de test et ajoutez le répertoire principal src de projet en tant que répertoire source supplémentaire dans les options de construction. Je n'aime pas cette approche car il faut que je garde le fichier MXML dans une arborescence de répertoire distinct de tous les autres fichiers source, en plus de la laideur de maintenir deux projets.
Était-ce utile?

La solution

Il y a toujours AsUnit .

Autres conseils

J'ai fini par mettre le fichier MXML de test unitaire dans le projet initial, la création d'un nouveau projet Flex, la suppression du répertoire src, et le remplacer par un dossier Eclipse lié au répertoire src du projet ActionScript. Cette configuration semble fonctionner très bien.

Nous avons fait quelque chose de similaire pour obtenir FlexUnit travailler avec CruiseControl.net (serveur d'intégration continue).

Dans notre implémentation, nous avons le code ci-dessous dans l'exécution du gestionnaire FlexEvent.CREATION_COMPLETE de la classe d'application.

Comment sortir les résultats des tests unitaires est complètement à vous. Notre mise en œuvre a été utilisé à la fois avec AIR et Zinc3 et à la fois la sortie d'une représentation XML NUnit convivial et puis quittez l'application (avec un code de sortie de -1 si des tests ont échoué).

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

Peut-être que vous pouvez utiliser flexunit.textui.TestRunner, dont la sortie le résultat à la console.

Nous avons extrait tout le code que nous voulons tester dans des projets de bibliothèque. Nous avons juste alors un projet distinct pour nos tests, ce qui est un projet Flex, qui dépend du projet en cours de test.

AS3Unit de libspark. Ils ont également un kit de test bêta async.

Essayez de AS3Unit libspark. Ils ont également un kit de test bêta async.

retirer l'élément « excludedEntries » dans le fichier de .actionScriptProperties de votre projet devrait fonctionner, j'utiliser cette façon de construire le fichier MXML dans mon projet pur actionscript.

Vous pouvez vérifier comment nous avons mis en place pour la construction Robotlegs utilisant FlexUnit4 et leurs tâches de fourmi de CI.

Pour le contrôle de version, nous dépouilleront tous les fichiers de projet Flex Builder / Flash. dossiers src et de test sont tous deux mis en place des chemins que src. Les tests sont rand par la construction de fourmis. Alternativement, un deuxième projet avec un coureur peut être mis en place si vous la vie du coureur de test visuel.

Il a été très efficace et facile à utiliser dans de nombreux contributeurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top