Ошибка FlexUnit 4: Adobe:TestRunnerBase

Я получаю сообщение об ошибке с FlexUnit 4, для которого не могу найти решение. Вот ошибка:

Не удалось разрешить реализацию компонента.

Вот мой пример приложения (я использую FlashBuilder 4 Premium, поэтому я предполагаю, что все необходимые SWC уже установлены):

<?xml version="1.0" encoding="utf-8"?>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<fx:Script>
    <![CDATA[

        import sampleSuite.SampleSuite;
        import org.flexunit.listeners.UIListener;
        import compilationSuite.SuitesToRun;
        import org.flexunit.runner.FlexUnitCore;

        private var core:FlexUnitCore;
        public function runMe():void {
            core = new FlexUnitCore();
            core.addListener( uiListener );
            core.run( sampleSuite.SampleSuite );
        }

    ]]>
</fx:Script>

<adobe:TestRunnerBase
    id="uiListener"
    width="100%"
    height="100%" />

Единственная идея, которую я нашел, - это сайт поддержки FlexUnit, в котором говорится, что если мое пространство имен не ошибочно (и не так), то мне не хватает этого файла: FlexUnit4UIListener.swc

Я использую FlashBuilder 4 и Flex 4.5.1 SDK. В моем пути сборки я ссылаюсь на эти три файла и их SWC:

C: \ Program Files \ Подключаемый модуль Adobe\Adobe Flash Builder 4 \eclipse\plugins\com.adobe.flexbuilder.flexunit_4.0.1.277662\flexunitframework\libs\version4libs{Common,FlexProject и locale/version4locale}

Нужно ли мне больше SWC в папке libs моего проекта? Чего мне не хватать?

4 ответа

Решение

Я считаю, что проблема должна заключаться в неправильном импорте файлов SWC. Несмотря на это, я обновил до FlashBuilder 4.6 и нашел статью, которая показывает мне, как использовать FlexUnit4, и у меня это работает без проблем.

Вот ссылка на эту статью на тот случай, если кто-то другой найдет ее полезной: http://www.adobe.com/devnet/flex/articles/flashbuilder4_tdd.html

Вы уверены, что пространство имен "Adobe"? Обычно я предполагаю что-то вроде "flexunit". Есть ли у вас следующая декларация пространства имен в корневом теге вашего текстового компонента?

 xmlns:adobe="http://www.adobe.com/2009/flexUnitUIRunner"

Я бы порекомендовал изменить его на:

 xmlns:flexunit="http://www.adobe.com/2009/flexUnitUIRunner"

Тогда вам придется использовать это так:

<flexunit:TestRunnerBase id="uiListener" width="100%" height="100%" />

Исходя из сообщения об ошибке, я бы предположил, что это проблема пространства имен. Если классы вообще не были доступны, ваша IDE должна показывать вам много ошибок в операторах импорта.

Крис

Используйте функцию Project-> "Очистить...", чтобы заставить компилятор Flash Builder перестраивать все ресурсы в вашем проекте.

Eclipse (в моем случае STS) жалуется, что не может быть найдена следующая папка: "C:\Program Files\Adobe\Adobe Flash Builder 4.7\eclipse\plugins\com.adobe.flexbuilder.flexunit_4.7.0.349722\flexunitSwcs\4.5\ языка \en_US\version4locale\"

При установке есть папка "C:\Program Files\Adobe\Adobe Flash Builder 4.7\eclipse\plugins\com.adobe.flexbuilder.flexunit_4.7.0.349722\flexunitSwcs\4.5\locale\en_US" с одним файлом "FlexUnitTestRunner_rb.swc"в этом. Создание подпапки version4locale и копирование в нее файла "FlexUnitTestRunner_rb.swc" не устранили проблему в проекте flex. Однако удаление проекта и его повторный импорт из репозитория SVN исправили его.

Итак, Flash Builder нуждается в этом до создания или импорта проекта. (Я не смог обновить настройки проекта, потому что они были созданы в более ранней версии Flash Builder; они были импортированы из SVN. Обновление настроек проекта вызвало гораздо больше ошибок).

Другие вопросы по тегам