4

我有一个为 Delphi 7 编写的遗留项目。我即将将一堆新代码集成到其中,其中包括一个使用 DUnit 的测试套件。DUnit 它不是 Delphi 7 的一部分(它后来被集成),所以这里的问题是:我应该将 DUnit 单元包含到我的项目中(将它们检查到版本控制等中)还是我应该更好地要求所有参与的开发人员维护他们的独立DUnit 安装?

该项目是封闭源代码,仅在我工作的企业内编写和部署——也就是说,项目源代码不会交付给任何消费者。

4

1 回答 1

4

您提出问题的方式可能会使您对所问的内容感到困惑。所以让我们先解决这个问题。

听起来您在询问是否在生产应用程序中包含 DUnit 单元。这将是一个非常糟糕的主意,我将避免在此答案中详细说明原因。

但是,我理解您的问题是关于您是否应该将这个“第三方”源视为您自己的项目源代码(就源代码控制而言)。我已经这样回答了。


有许多原则可以证明在 SC 存储库中包含 DUnit 源代码是合理的。

  • 每当您有新的开发人员或新的开发机器安装时,您都希望快速、轻松且不费吹灰之力地启动和运行。
    • 只有在您的源存储库中管理所有依赖项时,才能实现理想。很难做得比:(1)获取最新源。(2)建造。
    • 即使您将磁盘映像与所有必需的应用程序(包括第三方库)一起使用,它也不会具有 100% 的最新源。
  • 您的所有开发人员都使用相同版本的 DUnit,这一点非常重要。
    • 否则,您可能会有在一台机器上工作的测试用例,但甚至可能无法在另一台机器上编译。
  • 在您广泛使用 DUnit 之后,我相信您会发现您想要更改的各种东西(大大小小的)。您最好将这些更改保存在您的存储库中。
    • 我对 DUnit 的个人经验是它的某些部分设计得很糟糕。因此,通过直接修改单元更容易完成一些扩展。

我什至会更进一步:即使最新版本的 Delphi 包含 DUnit,我仍然会复制到 Source Control 中。尽管 DUnit 是随 Delphi 一起提供的——它实际上只是将第三方源放入一个文件夹中。

于 2014-03-27T19:03:56.550 回答