如何在IDE或者构建脚本中对Flex应用程序进行单元测试?

时间:2020-03-05 18:37:43  来源:igfitidea点击:

我目前正在开发一个使用Adobe Flex 3编写的前端应用程序。我知道FlexUnit,但我真正想要的是一个适用于Ant / NAnt的单元测试运行程序,以及一个与Flex Builder IDE集成的运行程序(又名Eclipse)。是否存在?

此外,除了Cairngorm微体系结构示例之外,还有其他资源可用于"正确方式"进行Flex开发吗?

解决方案

回答

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应用程序,我们使用flex-mojos maven插件。他们为我们做得很好,我强烈建议我们在Ant上使用Maven。

话虽如此,如果我们已经在使用Ant,那么过渡到Maven可能会有些棘手。因此,如果我们处于该位置,我建议我们使用此处提供的flexunit任务:Ant Task

这两个库基本上都做同样的事情,它们在窗口中启动生成的flexunit测试运行程序mxml应用程序,并使用JUnit测试运行程序打开套接字连接以返回到构建过程。足够令人惊讶的是,它运行得很好。唯一的问题是我们不能无头运行它,因此,如果要从CI服务器运行构建,则必须确保该进程具有启动新窗口的能力,否则它将无法正常工作。

回答

FlexUnit的替代方法是AsUnit测试工具。有适用于动作脚本2和3的版本。它还与Project Sprouts很好地集成,Project Sprouts是Flex和Flash的构建工具,类似于ant,但是它使用ruby rake任务,并且沿maven包括出色的依赖管理。

我没有任何IDE集成。