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

Posted

技术标签:

【中文标题】如何从 IDE 或构建脚本中对 Flex 应用程序进行单元测试?【英文标题】:How can I unit test Flex applications from within the IDE or a build script? 【发布时间】:2010-09-05 08:35:40 【问题描述】:

我目前正在开发一个使用 Adob​​e Flex 3 编写的前端应用程序。我知道FlexUnit,但我真正想要的是 Ant/NAnt 的单元测试运行器和集成的运行器Flex Builder IDE(又名 Eclipse)。一个存在吗?

此外,除了Cairngorm microarchitecture 示例之外,还有其他关于如何“以正确方式”进行 Flex 开发的资源吗?

【问题讨论】:

【参考方案1】:

dpUint 测试框架有一个使用 AIR 构建的测试运行器,可以与构建脚本集成。

还有我的FlexUnit 自动化套件,它对 FlexUnit 的作用或多或少相同。它有一个 Ant 宏,可以将测试作为 Ant 脚本的一部分运行,例如:

<target name="run-tests" depends="compile-tests">
  <flexunit swf="$build.home/tests.swf" failonerror="true"/>
</target>

【讨论】:

【参考方案2】:

关于如何以正确的方式开发 Flex 应用程序,我不会过多关注 Cairngorm 框架。它确实声称展示了“最佳实践”等等,但我想说恰恰相反。它基于全局变量的使用,以及您应该尽量避免的其他事情。我有outlined some of the problems on my blog。

我建议您改为查看Mate framework,它有很好的文档和很好的示例来帮助您前进。它充分利用了 Flex,不像 Cairngorm 和 PureMVC 那样依赖全局变量,并且可以编写更多解耦的代码。

【讨论】:

【参考方案3】:

在我的项目中,我们使用 Maven 来构建我们的 Flex RIA 和基于 Java 的后端。为了构建和测试 Flex 应用程序,我们使用了 flex-mojos maven 插件。他们为我们做得很好,我强烈建议使用 Maven 而不是 Ant。

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

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

【讨论】:

【参考方案4】:

FlexUnit 的替代品是AsUnit 测试工具。 actionscript 2 和 3 有两个版本。它还与Project Sprouts 有很好的集成,Project Sprouts 是一个类似于 ant 的 Flex 和 Flash 构建工具,但是它使用 ruby​​ rake 任务并包括优秀的 maven 依赖管理。

但据我所知没有 IDE 集成。

【讨论】:

以上是关于如何从 IDE 或构建脚本中对 Flex 应用程序进行单元测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何正确部署 FLEX\FLASH swf 应用程序?

如何使用flex构建桌面应用程序?

如何在 Flex 中对 ArrayCollection 进行排序

从Flex-mxml(动作脚本)移动到另一种技术

如何在 shell 脚本中对整数比较进行逻辑或运算?

Java基本功离开IDE,使用javac和Java构建项目