flexunit与Flex Builder 3中的纯ActionScript项目

时间:2008-12-14 02:28:41

标签: flex actionscript flexbuilder flexunit

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

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

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

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

9 个答案:

答案 0 :(得分:3)

始终有ASUnit

答案 1 :(得分:1)

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

答案 2 :(得分: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 {}

答案 3 :(得分:1)

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

答案 4 :(得分:1)

我们已经将我们想要测试的所有代码考虑到库项目中。然后我们为测试提供了一个单独的项目,这是一个flex项目,它取决于被测项目。

答案 5 :(得分:1)

从libspark尝试AS3Unit。他们还有一个异步beta测试工具包。

答案 6 :(得分:0)

从libspark尝试AS3Unit。他们还有一个异步beta测试工具包。

答案 7 :(得分:0)

删除项目的.actionScriptProperties文件中的'excludedEntries'元素应该可行,我用这种方式在我的纯actionscript项目中构建mxml文件。

答案 8 :(得分:0)

您可以查看我们set up the build for Robotlegs如何使用FlexUnit4及其CI蚂蚁任务。

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

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