首页 > 网站 > WEB开发 > 正文

24.10.生成自动测试集

2024-04-27 13:52:37
字体:
来源:转载
供稿:网友
24.10.1. 问题
我想自动生成包含所有测试用例的测试集。
24.10.2. 解决办法
使用Antennae TestSuite-generation工具。
24.10.3. 讨论
TestCase必须包含进TestSuite才可以运行。创建新的TestCase并添加到TestSuite已经成为一种体力活。为了代替这种手工添加每个TestCase到TestSuite,你可以让TestSuite自动生成。开源的Antennae项目包含一个工具自动检测源代码目录和包含的测试自动生成TestSuite。

Antennae 包中的lib 子目录包含一个JAR 文件叫arc-flexunit2.jar , 里面有个类叫com.allurent.flexunit2.framework.AllTestsFileGenerator。当AllTestsFileGenerator在源代码目录运行时,它会寻找所有命名为Test*.as 或*Test.as并创建包含它们的TestSuite。这个工具在可以被重新定位的标准输出上创建TestSuite。生成的TestSuite文件被叫做FlexUnitAllTests。

假设Antennae被解压到~/Antennae和C:/Antennae,你可以像下面那样调用此工具:
java -cp ~/Antennae/lib/arc-flexunit2.jar
com.allurent.flexunit2.framework.AllTestsFileGenerator
~/FlexCookbook/src/ > ~/FlexCookbook/src/FlexUnitAllTests.as

java -cp C:/Antennae/lib/arc-flexunit2.jar
com.allurent.flexunit2.framework.AllTestsFileGenerator
C:/FlexCookbook/src/ > C:/FlexCookbook/src/FlexUnitAllTests.as
第一个例子中, ~/Antennae/lib/arc-flexunit2.jar 是JAR 文件的位置。运行的类名为com.allurent.flexunit2.framework.AllTestsFileGenerator,~/FlexCookbook/src/是源代码目录位置,~/FlexCookbook/src/FlexUnitAllTests.as 是生成文件的位置。

生成的TestSuite文件大概是这样:
+展开
-ActionScript
package
{
import flexunit.framework.*;
import mx.containers.CanvasTest;
import mx.containers.TileTest;
public class FlexUnitAllTests
{
public static function suite() : TestSuite
{
var testSuite:TestSuite = new TestSuite();
testSuite.addTestSuite(mx.containers.CanvasTest);
testSuite.addTestSuite(mx.containers.TileTest);
return testSuite;
}
}
}

当FlexUnit应用程序被编译之前,总是需要自动生成FlexUnitAllTests文件(请看Antennae文档关于Flex Builder下使用AllTestsFileGenerator工具的更多细节)

为了代替在主应用程序中手动构建TestSuite,可直接用FlexUnitAllTests类来代替TestSuite运行。每次FlexUnitAllTests类被重新生成时,所有包含的测试都将被重新编译和运行。使用FlexUnitAllTests的FlexUnit应用程序如下:
+展开
-XML
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:flexui="flexunit.flexui.*"
creationComplete="handleCreationComplete();">

<mx:Script>
<![CDATA[
import flexunit.framework.TestSuite;
private function handleCreationComplete():void
{
testRunner.test = FlexUnitAllTests.suite();
testRunner.startTest();
}

]]>
</mx:Script>
<flexui:TestRunnerBase id="testRunnerwidth="100%height="100%"/>
</mx:Application>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表