Flash Builder 4.5和FlexUnit 4.1
我们在Flex 4.1中编写了一个大型的多模块产品,运行在基于
Java的中间层之上.
来自Java背景,我希望在Flex环境中获得编写和运行单元测试的支持. 我已经使用FlexUnit的4.1版本更新了Flash Builder 4.5,我可以在应用程序项目上成功编写和执行单元测试,但是我还没有弄清楚如何在Flash Builder中对模块或库项目进行单元测试. 图书馆项目的问题 由于我们需要将测试编译到应用程序(SWF),因此我需要在Flash Builder中创建一个伴随项目,或者更改库(SWC)项目的依赖项上的链接类型以避免外部,因为外部依赖项应该由别人(通常是顶级应用程序). 作为一个实验,我尝试更改示例库项目上的链接:成功生成了一个测试运行器SWF,但是FlexUnit无法运行它,因为在对我没有任何意义的事情上报告了#1065错误. 对于我们的无头构建(使用Gradle),我发现通过简单地合并所有依赖项而不管它们在生成测试运行器SWF时的原始链接,这很容易解决.我也可以使用外部工具支持从Eclipse中轻松运行,因为结果是与通常的JUnit视图中显示的JUnit兼容的XML结果. 你怎么做呢? 其他Flex开发人员如何在多模块和多库项目中构建其单元测试?您是否在Flash Builder 4.5中运行测试?您可以为任何库或模块项目独立运行测试吗? 解决方法
好的,这是我第二次回答我自己的问题(最后一个也是围绕Flex).
我已经去为每个项目添加测试,但是我从一个中心测试项目运行测试. 每个项目都应该: >一个测试目录 Flash Builder不喜欢生活在除src之外的任何其他目录中的MXML应用程序,因此不要将测试目录设置为另一个源目录. 现在将每个项目的测试源目录添加到整个测试项目中.您需要将所有需要的依赖项(运行时和测试)添加到此项目中. 我发现FlexUnit在如何管理单元测试的转轮时有点奇怪.当您选择’run as – >时,它将提供生成测试运行器MXML应用程序的功能. Eclipse中的Flex单元测试(您可以选择应运行的测试).从上下文菜单中选择“执行FlexUnit测试”不会导致生成MXML. 您不应该将此MXML文件检查到源代码管理中,而应忽略它.原因是如果要运行不同的测试集,FlexUnit不会成功重新生成此文件.这意味着您需要在需要重新生成文件时手动删除该文件. 这是我们在库项目中用于测试运行器的MXML的示例: <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="onCreationComplete()"> <fx:Script> <![CDATA[ import net.infonic.hs.AllTestsSuite; import org.flexunit.listeners.CIListener; import org.flexunit.runner.FlexUnitCore; private var core: FlexUnitCore; public function currentRunTestSuite(): Array { var testsToRun:Array = new Array(); testsToRun.push(AllTestsSuite); return testsToRun; } private function onCreationComplete(): void { core = new FlexUnitCore(); core.addListener(new CIListener()); core.run(currentRunTestSuite()); } ]]> </fx:Script> </s:Application> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |