如果您在 Flex Builder 3 中创建纯 ActionScript 项目并希望使用 flexunit 进行单元测试,那么最好的选择是什么?

内置的 Flex 构建器将拒绝构建包含 TestRunnerBase 组件的 mxml 文件,因为它是纯 ActionScript 项目(不允许使用 Flex)。无法将 mxml 文件添加到项目设置中的“ActionScript 应用程序”列表中。

现在我可以看到两种选择,两者都是不可取的。

  1. 将单元测试 mxml 文件添加到项目中,并创建外部工具设置来构建和运行它。这就是我现在正在采用的方法,它工作得很好,只是无法进行交互式调试。
  2. 仅为测试 mxml 文件创建一个新的 Flex 项目,并将主项目的 src 目录添加为构建选项中的附加源目录。我不喜欢这种方法,因为除了维护两个项目的丑陋之外,它还要求我将 mxml 文件与所有其他源文件保存在单独的目录树中。
有帮助吗?

解决方案

总有 AS单元.

其他提示

我最终将单元测试 mxml 文件放入原始项目中,创建一个新的 Flex 项目,删除 src 目录,并将其替换为 ActionScript 项目的 src 目录中的 Eclipse 链接文件夹。这个设置似乎运行良好。

为了让 FlexUnit 与 CruiseControl.net(持续集成服务器)一起工作,我们做了类似的事情。

在我们的实现中,我们在 Application 类的 FlexEvent.CREATION_COMPLETE 处理程序中运行以下代码。

如何输出单元测试的结果完全取决于您。我们的实现已与 AIR 和 Zinc3 一起使用,并且都输出 NUnit 友好的 XML 表示形式,然后退出应用程序(如果任何测试失败,则退出代码为 -1)。

// import mx.core.Application;
// import flexunit.framework.*;

// class AutomatedTestHarness extends Application implements TestListener

private function creationCompleteHandler(event : Event) : void
{
    this._result = new TestResult();
    this._result.addListener(this);

    var testSuite : TestSuite = new TestSuite();
    this.addUnitTests(testSuite);

    testSuite.runWithResult(_result);
}

/**
  * Implement these as part of TestResult.addListener
  * If you want to output xml after the tests run, do so here
  * (Tip: Count tests in endTest and compare the count to testSuite.countTestCases()
  * to find out when all tests have completed)
  */
function startTest(test : Test) : void {}
function endTest(test : Test) : void {}
function addError(test : Test, error : Error) : void {}
function addFailure(test : Test, error : AssertionFailedError) : void {}

也许您可以使用 flexunit.textui.TestRunner,它将结果输出到控制台。

我们已经将要测试的所有代码分解到库项目中。然后我们就有一个单独的项目用于测试,这是一个 Flex 项目,这取决于被测试的项目。

尝试 AS3单元 来自 libspark.他们还有一个异步 beta 测试套件。

尝试使用 libspark 中的 AS3Unit。他们还有一个异步 beta 测试套件。

删除项目的 .actionScriptProperties 文件中的“excludedEntries”元素应该可以工作,我使用这种方法在我的纯 Actionscript 项目中构建 mxml 文件。

你可以看看我们是如何做到的 设置 Robotlegs 的构建 使用 FlexUnit4 及其 CI ant 任务。

为了进行版本控制,我们删除了所有 Flex/Flash Builder 项目文件。src 和 test 文件夹都设置为 src 路径。测试是通过 ant 构建进行的。或者,如果您使用视觉测试运行程序,则可以设置带有运行程序的第二个项目。

它对于许多贡献者来说非常有效且易于使用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top