flexunit с чистым проектом ActionScript в Flex Builder 3 - PullRequest
2 голосов
/ 14 декабря 2008

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

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

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

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

Ответы [ 9 ]

3 голосов
/ 14 декабря 2008

Всегда есть ASUnit .

1 голос
/ 04 июня 2009

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

1 голос
/ 07 января 2009

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

1 голос
/ 07 января 2009

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

1 голос
/ 15 декабря 2008

Мы сделали нечто подобное, чтобы 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 {}
1 голос
/ 14 декабря 2008

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

0 голосов
/ 06 ноября 2009

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

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

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

0 голосов
/ 06 ноября 2009

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

0 голосов
/ 04 июня 2009

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

...