2009-11-24 28 views
2

我工作的一个通用代码库的ActionScript 3.0叫as3lib其中包括一些扩展核心API和一些有用的功能单元测试。我已经写了几个单元测试(使用FlexUnit)来确保一切正常。最佳实践如何将在图书馆

什么是组织库中的这些测试的最佳方式?目前,我有我的所有代码src/和我的测试test/,但我已经建立了一个辅助Flex项目来运行单元测试。当我想运行测试时,我也手动添加和删除库中的测试文件。

我在做什么似乎不对。有没有更好的办法?最好是编译后的库不包含测试文件,但我不需要两个独立的项目来测试它们。

回答

2

我们已经在我的公司做这些事情的方式是,我们实际上包括源目录下的两个,然后我们有我们使用了两个应用程序MXML文件。一个是测试套件,其中包括所有适用于单元测试类的链接,另一个是主应用程序。我们也有两个封装结构src文件夹内:一个封装结构COM ..和另一tests.com ......确保单元测试ALL源代码是在测试包ALWAYS - 这方式只能使用一个SVN忽略,并且您还可以确保您的测试不会与其他项目创建相关且硬编码的关系。

有我们用它来确保不包括在test.com源文件两种方式。自动构建系统只引用主应用程序,因为只从com。,mxmlc.exe导入将只包含主应用程序的文件。在eclipse内部进行本地构建时,可以通过单击调试旁边的小箭头并滚动至“整理收藏夹”来控制构建方式。当您单击“添加”时,您应该能够选择引用Application类的所有根级别.mxml文件。一定要添加基础应用程序和新的单元测试应用程序文件。当你点击“确定”后,现在箭头就可以作为主应用程序或单元测试框架进行调试。

顺便说一句,我们还可以使用的FlexUnit作为我们的测试框架。我喜欢。

1

我已经做到了类似于你在过去描述的方式,但它似乎是那种地方SpringAS能不能进去动态添加,并从配置中删除他们很方便的事情。你有尝试过吗?

+1

谢谢。我觉得SpringAS在这一点上可能有点矫枉过正。也就是说,我可能会花费更多的时间来设置这一点,而不是我手动完成所有工作。 – 2009-11-24 22:06:18

1

我们必须在我们的图书馆顶级独立src和测试目录。我们的应用程序是库项目周围非常薄的包装,所以他们不需要任何测试。我们还有一个FlexUnit应用程序项目,用于从FlexBuilder运行测试。

我们用maven我们的主要构建系统和Flex的Sonatype的插件构建过程中运行所有的单元测试,甚至我们的基于linux的连续的服务器上。 Maven默认在'测试'目录中查找测试,这对于选择该位置非常合适。

1

我要去对着流向这里,并提出您的测试一共设置一个不同的项目。我相信,一般来说,放置测试的位置并不重要,只要它是一致的,有点可管理的。但是,我也有具有用于测试的独立工程三个令人信服的理由:

  1. 分离的担忧。首先,你的图书馆有一个目的,测试有另一个目的。尽管测试需要库来运行,但库并没有真正用于测试。 注意我不是说测试是无用的,远非如此。测试是为了验证库的健康状况,但在生产环境中,测试没有任何用处。

  2. 膨胀较小,文件较小。测试并不总是微不足道的。但即使他们都是,他们仍然在使用磁盘空间。由于无论如何这些测试并未在生产环境中使用,因此这没有意义。另外,将测试分离到新项目中会使文件结构更加清洁。

  3. 当测试不在周围时,CI环境通常更易于设置。

虽然肯定可以至少解决编译器指令的第二个问题,但如果把它们分开很容易,这是不必要的工作。测试可能需要使用相同名称空间的库或应用程序(任何内部类都是?)也不是问题,因为您的测试项目可能会镜像命名空间。显然,这使得名称空间中不存在名称冲突是必要的,但这是微不足道的。

就Flash Builder支持而言,将事情分成两个项目是很好的。所有你需要做的创建一个新的测试是右键单击任何你想测试的类,要求创建一个新的测试,并确保你选择了你的测试项目,而不是弹出的对话框中的当前。这就是为什么我和我的团队成员在进入TDD时很难合理编写测试的主要原因,因为开始时太多的开销。使用IDE的当前状态,这是非常简单和有用的。

然而,与其他技术一样,有一些注意事项。一方面,除非有文件记录,否则这些测试不在一个不同的项目中。在同一个项目中进行测试有效地分类了这个问题。另一方面,这很容易通过配置你的环境中的maven或其他依赖管理工具来解决。另一个问题是如果你的测试项目中有一个包含结构库或应用程序的包结构,那么在使这些结构同步的过程中会有一些维护开销。虽然这不是一个大问题,并且使用脚本很容易解决,但它仍然值得一提。

无论如何,这就是我的做法。

+0

“你需要做的所有的事情来创建一个新的测试是右键单击你想测试的任何类,要求创建一个新的测试,并确保你选择你的测试项目,而不是弹出对话框中的当前”我必须错过了一些东西,因为当我右键点击课程时,我看不到选择创建测试的选项。如果我右键单击某个源文件,我确实看到了创建测试的选项,但在出现的对话框中没有选择选择其他项目的选项。 – 2014-09-25 15:59:12