Модульное тестирование библиотек Flex/Flash в FlashBuilder
Для обычного приложения Flash/Flex я бы включил мои модульные тесты в свой проект приложения (возможно, в исходную папку test рядом с моей основной папкой src). Тогда у меня будет две точки входа в приложение: приложение и его тесты.
Как люди делают это для своих проектов Flex Library? Вы знаете, вид, который производит файл SWC. Насколько я могу судить, вы не можете установить исполняемую точку входа для этих проектов (для запуска тестов).
4 ответа
В самой первой версии Flash Builder Beta 1 вы можете писать и выполнять тесты Flexunit из библиотечного проекта.
Вы можете использовать интегрированную среду IDE FlexUnit, выбрать проект, папку, класс или метод из контекстного меню и использовать "Выполнить модульные тесты Flex". Это создаст файл приложения с требуемым синтаксисом, запустит приложение и покажет результаты в FB. Вы даже можете выбрать из результата и запустить тесты.
Как правило, Flash Builder позволяет использовать отладчик только из приложения Flex/AIR, а не из проекта библиотеки. Поэтому лучше всего загрузить библиотеку в приложение Flex и написать + отладочные тесты там.
Вот пошаговые инструкции, чтобы можно было протестировать ваш библиотечный проект с включенной отладкой / пошаговым выполнением:
- Создайте проект библиотеки Flex, который вы хотите протестировать + отладить
- Создайте обычное пустое приложение Flex. Мы напишем тесты в этом фиктивном приложении Flex, чтобы мы могли использовать функции отладки.
Задайте путь сборки библиотеки для папки "libs" приложения Flex, чтобы она встраивала самый последний код в SWC-файл, загруженный приложением Flex.
При желании, установите в приложении Flex "ссылку" на проект библиотеки в "Свойства проекта" -> "Ссылки на проект", это гарантирует, что сначала будет создан код библиотеки.
- Запишите свои тесты в приложении Flex
- Отладка и запуск ваших тестов: вы должны быть в состоянии пройти через исходный код вашей библиотеки! Ницца.
- По желанию, как только вы убедитесь, что все ваши тесты хороши,скопируйте свои тесты обратно в проект библиотеки, чтобы объединить весь связанный с ней код библиотеки в одном проекте. Убедитесь, что вы не включили тестовые классы в реальную библиотеку SWC.
Вот как я это делаю в любом случае.
Если мы предполагаем, что вам нужна точка входа mx:Application для запуска модульных тестов, то, по-видимому, имеет смысл сгенерировать отдельный проект приложения исключительно для запуска тестов.
Вы действительно хотите включить модульные тесты в скомпилированный SWC? (Для приложения это не будет проблемой, поскольку на них, по-видимому, нет ссылок, но для библиотеки SWC я думаю, что они будут скомпилированы, если они где-то находятся в иерархии папок)
В настоящее время нет способа протестировать библиотечный проект. Вы должны иметь приложение в качестве точки входа в тесты. Это было бы отличной функцией запроса для Flash Builder 4.