我在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 Plug-in \ eclipse \ plugins \ com.adobe.flexbuilder.flexunit_4.0.1.277662 \ flexunitframework \ libs \ version4libs {Common,FlexProject和locale / version4locale}
我的项目的libs文件夹中是否还需要更多SWC?我能错过什么?
答案 0 :(得分:1)
您确定命名空间是“adobe”吗?通常我会假设像“flexunit”。您是否在Text组件的root-tag中有以下Namespace-Declaration?
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应该在import语句中向您显示许多错误。
克里斯
答案 1 :(得分:0)
我认为问题必须是错误地导入SWC文件。无论如何,我已经升级到FlashBuilder 4.6并找到了一篇文章,向我展示了如何使用FlexUnit4,并且我已经让它工作没有问题。
以下是该文章的链接,以防万一其他人可能会发现它有用: http://www.adobe.com/devnet/flex/articles/flashbuilder4_tdd.html
答案 2 :(得分:0)
Eclipse(在我的案例中为STS)抱怨无法找到以下文件夹: “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 \ 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导入的。更新项目设置会导致更多错误。)
答案 3 :(得分:0)
使用Project-&gt;'Clean ...'功能强制Flash Builder编译器重建项目中的所有资源