【问题标题】:Should I include DUnit units into my Delphi 7 project? [closed]我应该在我的 Delphi 7 项目中包含 DUnit 单元吗? [关闭]
【发布时间】:2014-05-06 11:20:27
【问题描述】:

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

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

【问题讨论】:

  • 在旧的 Delphi 版本中,我们包含 DUnit (Lib\Pas\3rd\DUnit) 并由 VCS 管理
  • 不要将它包含在您的常规项目中。创建一个单独的 DUnit 单元测试项目。将该项目添加到源代码管理。始终将构建 3rd 方工具的源代码也添加到版本控制中。

标签: delphi delphi-7 software-distribution dunit


【解决方案1】:

根据您提出问题的方式,您的问题可能有些混乱。因此,让我们先解决这个问题。

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

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


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

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

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

【讨论】:

  • 谢谢,克雷格!抱歉不清楚,但您正确理解了我的问题:它是关于是否将 DUnit 作为项目源的外部依赖项或将它们维护为“供应商代码”,以一种或另一种方式集成到项目的源树中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-22
  • 2013-02-05
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 2018-07-01
相关资源
最近更新 更多