Frage

Wenn Sie ein reines Actionscript-Projekt in Flex Builder erstellen 3 und wollen Unit-Tests tun Flexunit verwenden, was ist die beste Option?

Der eingebaute in Flex Builder wird sich weigern, die MXML-Datei enthält, die TestRunnerBase Komponente zu bauen, wie es ein reines Actionscript-Projekt (kein Flex erlaubt) ist. Es ist unmöglich, die MXML-Datei in die „Actionscript-Anwendungen“ Liste in den Projekteinstellungen hinzuzufügen.

Im Moment kann ich zwei Möglichkeiten sehen, die beide unerwünscht.

  1. Fügen Sie die Unit-Tests MXML-Datei für das Projekt, und erstellen Sie es einen externen Tool-Setup zu erstellen und auszuführen. Dies ist der Ansatz, den ich jetzt nehme, und es funktioniert gut, außer dass interaktive Fehlersuche ist nicht möglich.
  2. Erstellen Sie ein neues Flex-Projekt nur für den Test MXML-Datei und fügen Sie das Hauptprojekt des src-Verzeichnis als zusätzliches Quellverzeichnis in den Build-Optionen. Ich mag diesen Ansatz nicht, weil es erfordert, dass ich die MXML-Datei in einem separaten Verzeichnisbaum von allen anderen Quelldateien zusätzlich zu der Hässlichkeit halte zwei Projekte aufrecht zu erhalten.
War es hilfreich?

Lösung

Es gibt immer AsUnit .

Andere Tipps

Ich landete das Gerät Test MXML-Datei in dem ursprünglichen Projekt setzen, ein neues Flex-Projekt erstellen, das src-Verzeichnis löschen und es mit einer Eclipse-verknüpften Ordner auf das src-Verzeichnis des Actionscript-Projekt zu ersetzen. Dieses Setup scheint gut zu funktionieren.

Wir haben etwas ähnliches, um zu erledigen Flexunit Arbeit mit CruiseControl.net (Continuous Integration Server).

In unserer Implementierung haben wir den Code unten laufen in der FlexEvent.CREATION_COMPLETE Handler der Application-Klasse.

Wie Sie geben die Ergebnisse der Unit-Tests ist ganz Ihnen überlassen. Unsere Implementierung ist sowohl mit AIR und Zinc3 und beiden Ausgängen einer NUnit freundliche XML-Darstellung und beenden Sie die Anwendung (mit einem Exit-Code von -1, wenn alle Tests nicht bestanden) verwendet.

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

Vielleicht könnten Sie verwenden flexunit.textui.TestRunner, die gibt das Ergebnis an die Konsole.

Wir haben alle den Code herausgerechnet wir in Bibliotheksprojekte testen möchten. Wir haben dann nur noch ein separates Projekt für unsere Tests, die ein Flex-Projekt ist, die an dem Projekt im Test abhängig ist.

Versuchen Sie AS3Unit von libspark. Sie haben auch einen asynchronen Beta-Test-Kit.

Versuchen AS3Unit von libspark. Sie haben auch einen asynchronen Beta-Test-Kit.

entfernen Sie das ‚excludedEntries‘ Element in Ihrem Projekt .actionScriptProperties soll Datei arbeiten, ich benutze diese Weise MXML-Datei in meinem reinen Actionscript-Projekt zu erstellen.

Sie können überprüfen, wie wir haben den Build für Robotlegs einrichten mit FlexUnit4 und ihre CI Ameise Aufgaben.

Für die Versionskontrolle wir alle der Flex / Flash Builder Projektdateien Streifen aus. src und Testordner werden sowohl als src Pfade eingerichtet. Tests sind rand über die Ameise zu bauen. Alternativ kann ein zweites Projekt mit einem Läufer aufgebaut werden kann, wenn man das Leben des visuellen Test Runner.

Es ist sehr effektiv und einfach in vielen Mitwirkenden zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top