Nunit: 终止对 .NET Framework 2.0 的支持(2005 年发布)

创建于 2018-10-18  ·  27评论  ·  资料来源: nunit/nunit

支持最少的 net20 而不是 net35 会增加我们开发的复杂性。 我们有 NUnit.System.Linq 并定义我们自己的 System.Action 并在我们可以有NET35地方写NET35 || NET20 NET35 。 我们需要额外的时间等待测试。 我们在 net20 上还有更多工作要做: https :

https://github.com/nunit/NUnit.System.Linq/issues/12#issuecomment -430979252 引用@NN---:

如果我有 .NET 2.0 的库,那么测试应该是 .NET 2.0 。
我认为没有人还在使用 2.0。
唯一的问题是许多库都支持从 2.0 开始的所有 .NET 版本。

也许如果 NUnit 停止支持 net20,它可能会给其他图书馆一个他们需要放弃 net20 的推动。 如果 net20 项目仍在开发中,则应升级到更新的 .NET Framework 并修复所有错误。 我希望实践中的错误非常罕见。 如果 net20 项目尚未开发,则没有理由升级到更新的 NUnit 框架或运行程序。

我仍然赞成支持 net35(于 2008 年发布),因为我知道使用 CLR v2 运行的实际项目(最多支持 net35)并且我不会有信心在 CLR v4 引擎上运行测试。 此外,VSTest 仍然带有 net35 runner。 但是,我确实想知道放弃这种支持是否会产生有益的连锁反应。

最后,.NET Framework 2.0 产品不再由其自己的制造商提供支持:

对 .NET Framework 2.0 的支持已于 2011 年 7 月 12 日结束。.NET 3.5 SP1 是此日期之后唯一受支持的服务包级别。 我们强烈鼓励客户迁移到 .NET Framework 3.5 SP1。 有关详细信息,请访问 .NET Framework 支持生命周期策略常见问题解答

https://support.microsoft.com/lifecycle/search?alpha=.NET Framework 2.0

最有用的评论

我不希望我们放弃 .NET 4.0 支持。 我们的大部分桌面内容仍然是 .NET 4。我们已经修复了很长时间,因为它是 XP 上可用的最后一个版本。 现在肯定是技术债务——但升级是有代价的。 请注意,当 NUnit 3.0 放弃对 .NET 4.0 客户端配置文件的支持时,我很生气。 😉

如果我们删除了 .NET 4.0 版本,那么 .NET 4.0 测试将自动选择 .NET 3.5 版本,我想它在很多地方都减少了 API。 巨大的变化...


在 .NET 2.0 上 - 我相当冷漠。 我关心的是支持多个平台的库。 我不同意 NUnit 应该“鼓励”其他库放弃支持,我个人认为测试库应该是最后一个放弃支持的人——只要有库,他们就需要测试! 🙂 我也不认为 XUnit/MSTest 的选择应该考虑在内 - 向后兼容是 NUnit 的优势,也是我们填补的生态系统中的一个空白。 这是好事!

综上所述,.NET 2.0 现在是 _old_,我不会反对我们放弃它 - 这样的库维护者可以将他们的 .NET 2.0 测试锁定在 NUnit 3.11 上运行。 我认为 7 年支持过去微软 EOL 已经足够了!

我会积极支持从引擎中删除 .NET 2.0,它会积极地给我们带来问题,例如 Mono 和 Remoting 替换。 我只是没有积极地看到框架中的相同障碍。

所有27条评论

虽然我完全同意,但我认为我们需要慢慢来,以确保社区意识到即将发生的变化并可以提供反馈。 我们上一次对社区进行民意调查是几年前,但我预计从那时起情况已经发生了变化。 出于同样的原因,我还希望看到控制台和引擎更新到 3.5。

MSTest 和 xUnit 目前都至少是 .NET 4.5,我还没有看到任何严重的阻力。 我们还可以考虑放弃 4.0 支持以及我们在其中拥有的所有异步解决方法,并且需要 4.5 进行测试。 和 2.0/3.5 一样,是同一个 CLR。 我不太愿意这样做,但我把它放在桌子上讨论。

几年前,我们遇到了 NUnit 不支持 .NET 3.5 的错误。 它花了几个月的时间才被报道,这表明它的使用量。 我希望 2.0 小得令人难以置信。

我建议我向 NUnit 讨论邮件列表发送一封电子邮件,询问使用 NUnit for .NET 2.0 的任何人的反馈,并计划在没有令人信服的理由的情况下在下一个版本中放弃支持。

问题- 这是一个需要 4.0 版本的重大更改吗? 我们已经更改了我们的 PCL 和 .NET Standard 版本,而没有升级到 4.0。

我喜欢你的提议。

xUnit 3.0 至少需要 .NET Framework 4.7.2。 https://github.com/xunit/xunit/issues/1732

同时放弃对 net40 的支持是有意义的,并且可以减轻我们对异步内容的负担。 也许我们应该考虑将 net45 移动到 net452:

对 .NET Framework 4、4.5 和 4.5.1 的支持已于 2016 年 1 月 12 日结束。Microsoft 建议客户升级到 .NET Framework 4.5.2,以便继续获得技术支持和安全更新。 有关详细信息,请访问 .NET Framework 支持生命周期策略常见问题解答https://support.microsoft.com/help/17455。

https://support.microsoft.com/en-us/lifecycle/search?alpha=.NET Framework 4

这是一个需要 4.0 版本的重大更改吗? 我们已经更改了我们的 PCL 和 .NET Standard 版本,而没有升级到 4.0。

我们认为几乎没有人会受到影响。 除非我们也借此机会进行其他重大更改,否则我宁愿不使用 4.0 版本号。

/cc @ChrisMaddock最近与 net40 项目合作。

我不希望我们放弃 .NET 4.0 支持。 我们的大部分桌面内容仍然是 .NET 4。我们已经修复了很长时间,因为它是 XP 上可用的最后一个版本。 现在肯定是技术债务——但升级是有代价的。 请注意,当 NUnit 3.0 放弃对 .NET 4.0 客户端配置文件的支持时,我很生气。 😉

如果我们删除了 .NET 4.0 版本,那么 .NET 4.0 测试将自动选择 .NET 3.5 版本,我想它在很多地方都减少了 API。 巨大的变化...


在 .NET 2.0 上 - 我相当冷漠。 我关心的是支持多个平台的库。 我不同意 NUnit 应该“鼓励”其他库放弃支持,我个人认为测试库应该是最后一个放弃支持的人——只要有库,他们就需要测试! 🙂 我也不认为 XUnit/MSTest 的选择应该考虑在内 - 向后兼容是 NUnit 的优势,也是我们填补的生态系统中的一个空白。 这是好事!

综上所述,.NET 2.0 现在是 _old_,我不会反对我们放弃它 - 这样的库维护者可以将他们的 .NET 2.0 测试锁定在 NUnit 3.11 上运行。 我认为 7 年支持过去微软 EOL 已经足够了!

我会积极支持从引擎中删除 .NET 2.0,它会积极地给我们带来问题,例如 Mono 和 Remoting 替换。 我只是没有积极地看到框架中的相同障碍。

@ChrisMaddock这是对 .NET 4.0 支持及其成本的公平分析,谢谢。 我想将所有这些测试套件更新到目标 4.5 也是一个问题吗?

问题不大,因为我们不需要担心用户计算机上的 .NET 安装。 但这意味着我们无法在我们“支持”的平台上进行测试,这并不理想——多年来,我们在 4.0 和 4.5 之间发现了一些细微的差异。

引入 .NET Core 和独立部署!

我已经向nunit-discuss发送了一封电子邮件,询问任何使用 .NET 2.0 并且不想在测试中针对 .NET 3.5 的人对此问题发表评论。

@rprouse也许还通过 nunit twitter 帐户广播了这个问题(我猜/希望“我们”正在控制它?)

好主意@mikkelbu ,谢谢。 请大家转发, https: //twitter.com/nunit/status/1055845383400767490

这条推文获得了 1,911 次推特印象,但到目前为止没有任何回应......🤔

您确实明确表示,我们希望听到的人是那些在积极开发中进行 net20 测试并且不想将测试项目移至 net35 的人,所以也许 1,911 数字是一个强有力的声明,每个人都要么不受影响,要么乐于迁移到 net35?

放弃对 2.0-4.5 的支持听起来完全合理; 我们目前在 4.5.2+ 并且正在慢慢迁移到 4.6。

:+1:澄清一下,我认为我们现在只考虑放弃 .NET Framework 2.0 并保留我们的 3.5-4.5 .NET Framework 版本。

如果人们使用 .net 2.0 并且不更新框架,我严重怀疑他们甚至会考虑更新到更新版本的 NUnit。 旧版本仍然可以使用,所以我看不出有什么令人信服的理由继续使用 2.0,甚至 3.5。 也许,也许是 4.0,但甚至不确定。

我们在这里、讨论列表或 Twitter 上都没有收到负面反馈。 @nunit/framework-and-engine-team 我们应该继续这个吗? 正如@ChrisMaddock提到的,我也赞成在引擎中做同样的事情,但我们可以在那里讨论。

已经一个月了; 听起来不错。 我应该公关https://github.com/nunit/nunit/compare/master...jnm2 :drop_net20 吗?

继续并提交您的 PR。 在我们合并之前,让我们等待几天的评论。

cc @JamesNK为了提高认识,Newtonsoft 是我所知道的一个仍在使用 .NET 2.0 NUnit 的库。

我检查了 NewtonSoft.JSON 测试项目,它使用 NUnit 并有一个net20目标。 https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json.Tests/Newtonsoft.Json.Tests.csproj

😢

如果您认为它最适合 nunit。 我总是可以在 3.5 目标上运行 net20 DLL

我们不想让人们伤心。 您是否会预见到那些特别需要 net20 多年的用户?

ℹ(一般说明)我刚刚在使用 vstest.console.exe 15.9 运行 net35 测试时发现了这一点:

不支持 Framework35。 对于面向 .Net Framework 3.5 的项目,请使用 Framework40 在 CLR 4.0“兼容模式”下运行测试。

哎哟!

我听说 VS 正在放弃对 3.5 runner 的支持,但我之前检查了几次更新,它仍然存在。 我想它终于发生了。 奇怪的是,我认为它会出现在 VS 2019 中而不是更新中。

我认为它是在这个 PR 中引入的 - Microsoft/vstest#1723,但在发行说明中没有提到 - https://github.com/Microsoft/vstest-docs/blob/master/docs/releases.md

这是打包在 .NET Core SDK 2.1.500 中的VSTest.Console ,由dotnet test 。 我认为它是由 VS 15.9 安装的。

您是否会预见到那些特别需要 net20 多年的用户?

我不知道。 没有关于使用什么目标的任何统计数据。 在我看来,保持 net20 目标并没有太多努力。 我的计划是离开它,直到它变得难以维护。

此页面是否有帮助?
0 / 5 - 0 等级