【问题标题】:Include NUnit in my Open-Source Project Download? [closed]在我的开源项目下载中包含 NUnit? [关闭]
【发布时间】:2009-11-23 19:36:53
【问题描述】:

我正在考虑两种可能性:

  1. 在源代码中包含 NUnit 一个开源项目的 - 使 潜在的贡献者很容易 立即运行自动化测试。我觉得在这个项目中推广“测试优先”的文化很重要(或者至少让每个人都明白测试很重要)。
  2. 分发源代码 它,但我必须在 readme 如何进行测试 运行并包含指向 NUnit 的链接 下载页面。

问题:#1 合法吗?这两个选项中的哪一个通常是首选?我想听听那些熟悉许可证法律术语和熟悉常见做法的人的意见。

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为它是关于许可或法律问题,而不是编程或软件开发。 See here 了解详情,help center 了解更多信息。

标签: unit-testing open-source licensing junit nunit


【解决方案1】:

就合法性而言,我不是律师,你应该和律师谈谈。

在您的开源项目中包含您的单元测试。您不必在发布时重新分发 [n/j]Unit 运行时库。

让我换个说法。不要在您的项目中重新分配 j/nUnit 运行时间。您可以将单元测试保留在项目中。您唯一想要重新分发单元框架的情况是版本正在消失并且您无法使用更新的版本。

【讨论】:

  • +1 我同意。另一个很好的理由是,即使将 NUnit 与您的开源项目捆绑在一起是合法的,但 NUnit 很可能会随着时间的推移而发生变化,因此您实际上会给您的用户带来伤害,给他们一个粗糙的旧版本而不是最新的和最大的。只需捆绑您的单元测试,然后包含一个指向他们可以下载 NUnit 的链接。
  • 问题不在于“捆绑”,而在于将其签入源代码存储库。这是针对开发人员/贡献者而不是用户
【解决方案2】:

很多项目都使用外部库来执行此操作,因此任何人只要立即检查它就会拥有所有二进制文件,以防他们需要额外的库。我见过一些项目,其中包含所需工具的完整二进制副本,因此您拥有应用程序所需的确切版本,以及另一个文件夹,其中仅包含确切的 dll 或项目所需的任何内容。

【讨论】:

  • 您有此类项目的示例吗?我想快速浏览一下他们的源代码。谢谢!
【解决方案3】:

我会尝试自己回答这个问题。

首先,将我们的开源产品的二进制分发(面向用户)与其源代码存储库(面向开发人员/贡献者)分开非常重要。这个问题确实与后者有关。我以两个开源产品为例。

NUnit

  • 二进制:依赖于fit(包含在许可证中)
  • 来源:依赖于 NAnt(自行下载)和 log4net(包括但未获得许可)

起订量

  • 二进制:无依赖关系
  • 源包含以下外部依赖项:
  • Silverlight 测试工具 - 无需许可证即可提供
  • Microsoft .NET 框架参考程序集 - 无许可证
  • Castle - 包含许可证(Castle 项目使用 Apache 许可证,根据我对它的阅读,这是一个要求)

因此,将第三方开发/构建/测试工具包含在源代码中(不包含生产二进制文件)似乎是一种常见的做法,并且这些工具可以包含或不包含许可证通知,具体取决于许可证及其要求。您可以包含许可证以防万一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    相关资源
    最近更新 更多