Вопрос

Если вы создаете чистый проект ActionScript в Flex Builder 3 и хотите провести модульное тестирование с помощью flexunit, какой вариант является лучшим?

Встроенный Flex builder откажется создавать файл mxml, содержащий компонент TestRunnerBase, поскольку это чистый проект ActionScript (Flex не допускается).Невозможно добавить файл mxml в список "Приложения ActionScript" в настройках проекта.

Прямо сейчас я вижу два варианта, оба нежелательных.

  1. Добавьте файл mxml модульного тестирования в проект и создайте внешнюю программу установки для его сборки и запуска.Это подход, который я использую сейчас, и он работает нормально, за исключением того, что интерактивная отладка невозможна.
  2. Создайте новый проект Flex только для тестового файла mxml и добавьте каталог src основного проекта в качестве дополнительного исходного каталога в параметрах сборки.Мне не нравится этот подход, потому что он требует, чтобы я хранил файл mxml в отдельном дереве каталогов от всех других исходных файлов в дополнение к неудобству ведения двух проектов.
Это было полезно?

Решение

Всегда есть Единое целое.

Другие советы

В итоге я поместил файл модульного теста mxml в исходный проект, создал новый проект Flex, удалил каталог src и заменил его папкой, связанной с Eclipse, в каталог src проекта ActionScript.Эта настройка, кажется, работает нормально.

Мы сделали нечто подобное, чтобы заставить FlexUnit работать с CruiseControl.net (сервером непрерывной интеграции).

В нашей реализации приведенный ниже код выполняется во FlexEvent.Обработчик CREATION_COMPLETE класса Application.

То, как вы выводите результаты модульных тестов, полностью зависит от вас.Наша реализация использовалась как с AIR, так и с Zinc3, и обе выводят XML-представление, удобное для NUnit, а затем выходят из приложения (с кодом выхода -1, если какие-либо тесты завершились неудачей).

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

Может быть, вы могли бы использовать flexunit.textui.ТестРаннер, который выводит результат на консоль.

Мы включили весь код, который хотим протестировать, в библиотечные проекты.Затем у нас просто есть отдельный проект для наших тестов, который является гибким проектом, который зависит от тестируемого проекта.

Попробуй AS3Unit ( модуль as3 ) из libspark.У них также есть набор для асинхронного бета-тестирования.

Попробуйте AS3Unit из libspark.У них также есть набор для асинхронного бета-тестирования.

удалите элемент 'excludedEntries' в файле вашего проекта .actionScriptProperties должен работать, я использую этот способ для создания файла mxml в моем чистом проекте actionscript.

Вы можете посмотреть, как мы настройте сборку для Robotlegs используя FlexUnit4 и их вспомогательные задачи.

Для контроля версий мы удаляем все файлы проекта Flex / Flash Builder.папки src и test настроены как пути src.Тесты выполняются с помощью сборки ant.В качестве альтернативы можно настроить второй проект с бегуном, если у вас есть визуальный тестовый бегун.

Он был очень эффективен и прост в использовании многими участниками.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top