2

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

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

现在我可以看到两个选项,都是不可取的。

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

9 回答 9

3

总是有ASUnit

于 2008-12-14T13:31:12.080 回答
1

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

于 2008-12-14T17:10:53.867 回答
1

为了让 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 {}
于 2008-12-15T09:39:10.300 回答
1

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

于 2009-01-07T05:57:17.207 回答
1

我们已经将要测试的所有代码分解到库项目中。然后,我们只需要一个单独的项目来进行测试,这是一个 flex 项目,它依赖于被测项目。

于 2009-01-07T06:04:26.117 回答
1

从 libspark尝试AS3Unit 。他们还有一个异步 beta 测试套件。

于 2009-06-04T03:38:00.630 回答
0

从 libspark 尝试 AS3Unit。他们还有一个异步 beta 测试套件。

于 2009-06-04T03:34:39.770 回答
0

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

于 2009-11-06T02:09:07.570 回答
0

您可以查看我们如何使用 FlexUnit4 及其 CI ant 任务为 Robotlegs 设置构建。

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

它在许多贡献者中非常有效且易于使用。

于 2009-11-06T02:22:54.203 回答