Unit testing 在我的开源项目下载中包括NUnit?

Unit testing 在我的开源项目下载中包括NUnit?,unit-testing,open-source,licensing,junit,nunit,Unit Testing,Open Source,Licensing,Junit,Nunit,我正在考虑两种可能性: 在源代码中包含NUnit 开放源代码项目的开发-要制作 这对于潜在的贡献者来说是非常容易的 立即运行自动测试。我觉得在这个项目中推广“测试优先”的文化很重要(或者至少让每个人都清楚测试很重要) 分发源代码而不使用 是的,但我必须用 自述如何进行测试 运行并包含指向NUnit的链接 下载页面 问题:1合法吗?这两个选项中哪一个通常是首选的?我想听听那些熟悉许可证法律术语和常见做法的人的意见。就合法性而言,我不是律师,你应该找律师谈谈 在开源项目中包含单元测试。发布时不必重新

我正在考虑两种可能性:

  • 在源代码中包含NUnit 开放源代码项目的开发-要制作 这对于潜在的贡献者来说是非常容易的 立即运行自动测试。我觉得在这个项目中推广“测试优先”的文化很重要(或者至少让每个人都清楚测试很重要)
  • 分发源代码而不使用 是的,但我必须用 自述如何进行测试 运行并包含指向NUnit的链接 下载页面

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

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

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


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

    很多项目都是通过外部库来实现这一点的,因此任何一个签出它的人都可以立即获得所有二进制文件,以防他们需要额外的库。我见过一些项目,其中包括他们所需工具的完整二进制副本,因此你有应用程序所需的确切版本,再加上另一个文件夹,其中只包含确切的DLL或项目所需的任何内容

    我会试着自己回答这个问题

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

    NUnit

    • 二进制:依赖于fit(包括在许可证中)
    • 来源:依赖于NAnt(自己下载)和log4net(无许可证提供)
    Moq

    • 二进制:没有依赖项
    • 源包括以下外部依赖项:
    • Silverlight测试工具-包括在无许可证的情况下
    • Microsoft.NET framework引用程序集-无许可证
    • Castle-包括许可证(Castle项目使用Apache许可证,根据我的阅读,这是一项要求)

    因此,将第三方开发/构建/测试工具与源代码(而不是生产二进制文件)结合在一起似乎是一种常见做法,根据许可证的类型及其要求,这些工具可以附带或不附带许可证通知。您可以包括许可证以防万一。

    您有此类项目的示例吗?我想快速看一下他们的源代码。谢谢+我同意。另一个很好的理由是,即使将NUnit与您的开源项目捆绑在一起是合法的,但NUnit很可能会随着时间的推移而改变,因此您实际上会给您的用户提供一个粗糙的旧版本,而不是最新和最好的版本,从而对他们造成伤害。只需捆绑单元测试,然后包含一个链接,指向他们可以下载NUnit的地方。问题不是“捆绑”,而是将其签入源代码存储库。这是针对开发者/贡献者而不是用户的。我投票结束这个问题,因为它是关于许可或法律问题,而不是编程或软件开发。有关详细信息,请参阅。