我要去对着流向这里,并提出您的测试一共设置一个不同的项目。我相信,一般来说,放置测试的位置并不重要,只要它是一致的,有点可管理的。但是,我也有具有用于测试的独立工程三个令人信服的理由:
分离的担忧。首先,你的图书馆有一个目的,测试有另一个目的。尽管测试需要库来运行,但库并没有真正用于测试。 注意我不是说测试是无用的,远非如此。测试是为了验证库的健康状况,但在生产环境中,测试没有任何用处。
膨胀较小,文件较小。测试并不总是微不足道的。但即使他们都是,他们仍然在使用磁盘空间。由于无论如何这些测试并未在生产环境中使用,因此这没有意义。另外,将测试分离到新项目中会使文件结构更加清洁。
当测试不在周围时,CI环境通常更易于设置。
虽然肯定可以至少解决编译器指令的第二个问题,但如果把它们分开很容易,这是不必要的工作。测试可能需要使用相同名称空间的库或应用程序(任何内部类都是?)也不是问题,因为您的测试项目可能会镜像命名空间。显然,这使得名称空间中不存在名称冲突是必要的,但这是微不足道的。
就Flash Builder支持而言,将事情分成两个项目是很好的。所有你需要做的创建一个新的测试是右键单击任何你想测试的类,要求创建一个新的测试,并确保你选择了你的测试项目,而不是弹出的对话框中的当前。这就是为什么我和我的团队成员在进入TDD时很难合理编写测试的主要原因,因为开始时太多的开销。使用IDE的当前状态,这是非常简单和有用的。
然而,与其他技术一样,有一些注意事项。一方面,除非有文件记录,否则这些测试不在一个不同的项目中。在同一个项目中进行测试有效地分类了这个问题。另一方面,这很容易通过配置你的环境中的maven或其他依赖管理工具来解决。另一个问题是如果你的测试项目中有一个包含结构库或应用程序的包结构,那么在使这些结构同步的过程中会有一些维护开销。虽然这不是一个大问题,并且使用脚本很容易解决,但它仍然值得一提。
无论如何,这就是我的做法。
谢谢。我觉得SpringAS在这一点上可能有点矫枉过正。也就是说,我可能会花费更多的时间来设置这一点,而不是我手动完成所有工作。 – 2009-11-24 22:06:18