Flexunit 与 Flex Builder 3 中的纯 ActionScript 项目
如果您在 Flex Builder 3 中创建纯 ActionScript 项目并希望使用 flexunit 进行单元测试,那么最好的选择是什么?
内置的 Flex 构建器将拒绝构建包含 TestRunnerBase 组件的 mxml 文件,因为它是纯 ActionScript 项目(不允许使用 Flex)。 无法将 mxml 文件添加到项目设置中的“ActionScript 应用程序”列表中。
现在我可以看到两种选择,两者都是不可取的。
- 将单元测试 mxml 文件添加到项目中并创建外部工具设置来构建和运行它。 这就是我现在正在采用的方法,它工作得很好,只是无法进行交互式调试。
- 仅为测试 mxml 文件创建一个新的 Flex 项目,并将主项目的 src 目录添加为构建选项中的附加源目录。 我不喜欢这种方法,因为除了维护两个项目的丑陋之外,它还要求我将 mxml 文件与所有其他源文件保存在单独的目录树中。
If you create a pure ActionScript project in Flex Builder 3 and want to do unit testing using flexunit, what is the best option?
The built-in Flex builder will refuse to build the mxml file containing the TestRunnerBase component as it is a pure ActionScript project (no Flex allowed). It is impossible to add the mxml file to the "ActionScript Applications" list in the project settings.
Right now I can see two options, both undesirable.
- Add the unit testing mxml file to the project and create an external tool setup to build and run it. This is the approach I'm taking now, and it works fine, except that interactive debugging is impossible.
- Create a new Flex project just for the test mxml file and add the main project's src directory as an additional source directory in the build options. I don't like this approach because it requires that I keep the mxml file in a separate directory tree from all the other source files in addition to the ugliness of maintaining two projects.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
总有 ASUnit。
There's always ASUnit.
我最终将单元测试 mxml 文件放入原始项目中,创建一个新的 Flex 项目,删除 src 目录,并将其替换为 ActionScript 项目的 src 目录中的 Eclipse 链接文件夹。 这个设置似乎运行良好。
I ended up putting the unit test mxml file in the original project, creating a new Flex project, deleting the src directory, and replacing it with an Eclipse linked folder to the src directory of the ActionScript project. This setup seems to work fine.
为了让 FlexUnit 与 CruiseControl.net(持续集成服务器)一起工作,我们做了类似的事情。
在我们的实现中,我们在 Application 类的 FlexEvent.CREATION_COMPLETE 处理程序中运行以下代码。
如何输出单元测试的结果完全取决于您。 我们的实现已与 AIR 和 Zinc3 一起使用,并且都输出 NUnit 友好的 XML 表示形式,然后退出应用程序(如果任何测试失败,则退出代码为 -1)。
We've done something similar in order to get FlexUnit working with CruiseControl.net (continuous integration server).
In our implementation, we have the code below run in the FlexEvent.CREATION_COMPLETE handler of the Application class.
How you output the results of the unit tests is completely up to you. Our implementation has been used with both AIR and Zinc3 and both output an NUnit-friendly XML representation and then exit the application (with an exit code of -1 if any tests failed).
也许您可以使用 flexunit.textui.TestRunner,它将结果输出到控制台。
Maybe you could use flexunit.textui.TestRunner, which output the result to the Console.
我们已将要测试的所有代码分解到库项目中。 然后我们就有一个单独的项目用于测试,这是一个 Flex 项目,这取决于被测试的项目。
We've factored out all the code we want to test into library projects. We then just have a separate project for our tests, which is a flex project, which depends on the project under test.
尝试使用 libspark 中的 AS3Unit 。 他们还有一个异步 beta 测试套件。
Try AS3Unit from libspark. They also have an async beta test kit.
尝试使用 libspark 中的 AS3Unit。 他们还有一个异步 beta 测试套件。
Try AS3Unit from libspark. They also have an async beta test kit.
删除项目的 .actionScriptProperties 文件中的“excludedEntries”元素应该可以工作,我使用这种方法在我的纯 Actionscript 项目中构建 mxml 文件。
remove the 'excludedEntries' element in your project's .actionScriptProperties file should work, I use this way to build mxml file in my pure actionscript project.
您可以查看我们如何使用 FlexUnit4 及其 CI ant 设置 Robotlegs 的构建任务。
为了进行版本控制,我们删除了所有 Flex/Flash Builder 项目文件。 src 和 test 文件夹都设置为 src 路径。 测试是通过 ant 构建进行的。 或者,如果您使用可视化测试运行程序,则可以设置带有运行程序的第二个项目。
它对于许多贡献者来说非常有效且易于使用。
You can check out how we've set up the build for Robotlegs using FlexUnit4 and their CI ant tasks.
For version control we strip out all of the Flex/Flash Builder project files. src and test folders are both set up as src paths. Tests are rand via the ant build. Alternatively a second project with a runner can be set up if you life the visual test runner.
It has been very effective and easy to use across many contributors.