Как я могу выполнить модульное тестирование приложений Flex из среды IDE или сценария сборки?

В настоящее время я работаю над приложением с интерфейсом, написанным на Adobe Flex 3. Я знаю о FlexUnit, но мне бы очень хотелось запустить средство выполнения модульных тестов для Ant / NAnt и средство выполнения, которое интегрируется с IDE Flex Builder ( AKA Eclipse). Есть ли такой?

Кроме того, существуют ли какие-либо другие ресурсы о том, как «правильно» разработать Flex, помимо примера микроархитектуры Cairngorm?

Ответов (4)

Решение

В среде тестирования dpUint есть средство запуска тестов, созданное с помощью AIR, которое можно интегрировать со сценарием сборки.

Также есть мой комплект автоматизации FlexUnit , который более или менее делает то же самое для FlexUnit. В нем есть макрос Ant, который позволяет запускать тесты как часть сценария Ant, например:

<target name="run-tests" depends="compile-tests">
  <flexunit swf="${build.home}/tests.swf" failonerror="true"/>
</target>

О том, как правильно разрабатывать приложения Flex, я бы не стал вдаваться в подробности о фреймворке Cairngorm. Он действительно претендует на то, чтобы показать «лучшую практику» и так далее, но я бы сказал, что верно обратное. Он основан на использовании глобальных переменных и других вещах, которых следует избегать. Я обрисовал некоторые проблемы в своем блоге .

Я бы посоветовал вам вместо этого взглянуть на фреймворк Mate , в котором есть хорошая документация и хорошие примеры, которые помогут вам начать работу. Он использует Flex в полной мере, не полагается на глобальные переменные, такие как Cairngorm и PureMVC, и позволяет писать гораздо более независимый код.

В моем проекте мы используем Maven для создания как Flex RIA, так и серверной части на основе Java. Для создания и тестирования приложения Flex мы используем плагины maven flex-mojos . Они отлично работают для нас, и я очень рекомендую использовать Maven вместо Ant.

При этом, если вы уже используете Ant, может быть немного сложно перейти на Maven. Поэтому, если вы находитесь в таком положении, я бы рекомендовал использовать задачи Flexunit, доступные здесь: Ant Task

Обе эти библиотеки делают в основном одно и то же: они запускают сгенерированное mxml-приложение для запуска тестов flexunit в окне и открывают соединение сокета обратно в процесс сборки с помощью средства запуска тестов JUnit. Как ни странно, работает он довольно хорошо. Единственная проблема заключается в том, что вы не можете запустить его без головы, поэтому, если вы хотите запустить сборку с сервера CI, вы должны убедиться, что этот процесс имеет возможность запускать новые окна, иначе он не будет работать.

Альтернативой FlexUnit являются инструменты тестирования AsUnit . Существуют версии для ActionScript 2 и 3. Он также имеет хорошую интеграцию с Project Sprouts , который представляет собой инструмент сборки для Flex и Flash, похожий на ant, однако он использует задачи ruby ​​rake и включает отличное управление зависимостями по принципу maven.

Однако я не знаю об интеграции IDE.