Ошибка 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. Обновление настроек проекта вызвало гораздо больше ошибок).