我应该在我的Delphi 7项目中包含DUnit单元吗?

4
我有一个使用Delphi 7编写的遗留项目。我即将将一堆包含使用DUnit的测试套件的新代码集成到其中。DUnit不是Delphi 7的一部分(它是后来才集成的),所以问题来了:我应该将DUnit单元包含在我的项目中(并将其检入版本控制等),还是应该要求所有参与开发的开发人员维护他们各自的DUnit安装?
这个项目是闭源的,仅在我工作的企业内部编写和部署——也就是说,项目源代码不会交付给任何消费者。

在旧版的 Delphi 中,我们包含了 DUnit(Lib\Pas\3rd\DUnit\),并由版本控制系统进行管理。 - pf1957
不要将其包含在您的常规项目中。创建一个单独的DUnit单元测试项目。将该项目添加到源代码控制中。始终将构建第三方工具的源代码也添加到版本控制中。 - Jeroen Wiert Pluimers
1个回答

4
您的问题表述可能会让人产生一些困惑,所以我们先来澄清一下。
您似乎在询问是否应该将DUnit单元包含在您的生产应用程序中。这是一个非常糟糕的想法,本答案将避免详细解释原因。
然而,我理解您的问题是关于是否应该像对待自己的项目源代码一样处理这个“第三方”源代码(在源控制方面)。我会根据这样的理解回答您的问题。
有几个原则可以证明在您的SC代码库中包含DUnit源代码是合理的。
  • 当您有新的开发人员或新的开发机器安装时,您希望快速、轻松地启动并尽量少地麻烦。
    • 只有当所有依赖项都在您的源代码库中管理时,才能实现这种理想状态。很难做得比以下步骤更好:(1)获取最新源代码。 (2)构建。
    • 即使您使用了包含所有所需应用程序(包括第三方库)的磁盘映像,它也不会有100%的最新源代码。
  • 确保所有开发人员都使用DUnit的相同版本非常重要。
    • 否则,您可能会在一台机器上运行的测试用例无法在另一台机器上编译。
  • 在您广泛使用DUnit之后,我相信您会发现各种各样的事情(大小不一)需要进行更改。最好将这些更改保存在您的代码库中。
    • 我个人对DUnit的经验是,其中的某些部分设计得很差。因此,一些扩展更容易通过直接修改单元来完成。

甚至可以更进一步:即使最新版本的Delphi包含DUnit,我仍然会将其复制到源代码控制中。尽管DUnit随Delphi一起提供,但它实际上只是第三方源代码放在一个文件夹中。


谢谢,Craig!抱歉表述不清,但你理解了我的问题:这是关于是否将DUnit作为项目源代码的外部依赖项或将其作为“供应商代码”维护,以某种方式集成到项目的源代码树中。 - kostix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接