Nunit: Прекратить поддержку .NET Framework 2.0 (выпущена в 2005 г.)

Созданный на 18 окт. 2018  ·  27Комментарии  ·  Источник: nunit/nunit

Поддержка как минимум net20 вместо net35 увеличивает сложность нашей разработки. У нас есть NUnit.System.Linq и мы определяем наш собственный System.Action и пишем NET35 || NET20 где мы могли бы иметь NET35 . Берем дополнительное время на ожидание тестов. И у нас есть еще поработать только на net20: https://github.com/nunit/NUnit.System.Linq/issues/12

Процитируем @NN --- из https://github.com/nunit/NUnit.System.Linq/issues/12#issuecomment -430979252:

Если у меня есть библиотека для .NET 2.0, то тесты должны быть .NET 2.0.
Я не думаю, что есть кто-то, кто все еще использует 2.0.
Единственная проблема в том, что многие библиотеки поддерживают все версии .NET, начиная с 2.0.

Возможно, если NUnit перестанет поддерживать net20, это может подтолкнуть другие библиотеки к тому, чтобы они также отказались от net20. Если проект net20 все еще находится в разработке, его следует обновить до более новой .NET Framework и исправить все ошибки. Я ожидаю, что на практике ошибки будут крайне редкими. Если проект net20 все еще не находится в разработке, у него не должно быть причин для обновления до более новой среды NUnit или бегунов.

Я по-прежнему за поддержку net35 (выпущенного в 2008 году), потому что я знаю о реальных проектах, которые работают с использованием CLR v2 (поддерживает до net35), и я бы не был уверен, что буду проводить тесты для этого на движке CLR v4. Кроме того, VSTest по-прежнему поставляется с бегуном net35. Однако мне интересно, может ли отказ от этой поддержки иметь положительный волновой эффект.

Наконец, продукт .NET Framework 2.0 больше не поддерживается собственным производителем:

Поддержка .NET Framework 2.0 закончилась 12 июля 2011 г. .NET 3.5 SP1 - единственный поддерживаемый уровень пакета обновления после этой даты. Мы настоятельно рекомендуем клиентам перейти на .NET Framework 3.5 SP1. Для получения дополнительной информации посетите FAQ по политике жизненного цикла поддержки .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 сейчас _старый_, и я был бы не против, чтобы мы отказались от него - такие разработчики библиотек могли заблокировать свои тесты .NET 2.0 для работы на NUnit 3.11. Я думаю, что 7 лет поддержки прошли, когда Microsoft EOL'd достаточно!

Я бы активно поддержал удаление .NET 2.0 из движка, где он активно вызывает у нас проблемы, например, замена Mono и Remoting. Я просто не вижу тех же препятствий во фреймворке.

Все 27 Комментарий

Хотя я полностью согласен, я думаю, что нам нужно действовать медленно, чтобы убедиться, что сообщество осведомлено о грядущих изменениях и может предоставить обратную связь. Последний раз мы опрашивали сообщество несколько лет назад, но я думаю, что с тех пор ситуация изменилась. Я также хотел бы, чтобы консоль и движок обновились до версии 3.5 по тем же причинам.

И MSTest, и xUnit в настоящее время используют как минимум .NET 4.5, и я не видел серьезных возражений против этого. Мы также могли бы подумать об отказе от поддержки 4.0 и всех обходных путей Async, которые у нас есть, и потребовать 4.5 для тестов. Как и 2.0 / 3.5, это та же среда CLR. Я менее склонен к этому, но предлагаю это для обсуждения.

Несколько лет назад у нас была ошибка, из-за которой NUnit не поддерживал .NET 3.5. Прошло несколько месяцев, прежде чем об этом сообщили, что является показателем того, сколько он используется. Я думаю, 2.0 исчезающе мала.

Я предлагаю разослать электронное письмо в список рассылки NUnit Discuss с просьбой предоставить обратную связь от любого, кто использует NUnit для .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 закончилась 12 января 2016 г. 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 сейчас _старый_, и я был бы не против, чтобы мы отказались от него - такие разработчики библиотек могли заблокировать свои тесты .NET 2.0 для работы на NUnit 3.11. Я думаю, что 7 лет поддержки прошли, когда Microsoft EOL'd достаточно!

Я бы активно поддержал удаление .NET 2.0 из движка, где он активно вызывает у нас проблемы, например, замена Mono и Remoting. Я просто не вижу тех же препятствий во фреймворке.

@ChrisMaddock , это справедливый анализ поддержки .NET 4.0 и того,

Меньше проблем, поскольку нам не нужно беспокоиться об установке .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

1911 показов твита на твит, но пока нет ответа ... 🤔

Вы специально сказали, что люди, от которых мы хотели бы услышать, - это люди, у которых есть тесты net20 в активной разработке и которые не хотят переносить тестовый проект на net35, поэтому, возможно, число 1911 является сильным заявлением о том, что все либо не затронуты, либо счастливы перейти на 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, но даже не уверен в этом.

Ни здесь, ни в списке обсуждений, ни в твиттере у нас не было отрицательных отзывов. @ nunit / framework-and-engine-team мы будем двигаться дальше в этом направлении? Как упомянул @ChrisMaddock , я также за то, чтобы сделать то же самое в движке, но мы можем обсудить это там.

Прошел месяц; звучит неплохо. Стоит ли PR 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. Я всегда мог запустить DLL net20 на цели 3.5

Мы не хотим огорчать людей. Ожидаете ли вы, что еще много лет у вас появятся пользователи, которым нужен именно net20?

ℹ (Общее примечание) Я только что обнаружил это при запуске тестов net35 с vstest.console.exe 15.9:

Framework35 не поддерживается. Для проектов, ориентированных на .Net Framework 3.5, используйте Framework40 для запуска тестов в «режиме совместимости» CLR 4.0.

Ой!

Я слышал, что VS прекращает поддержку бегуна 3.5, но я проверил пару обновлений назад, и они все еще были там. Я думаю, это наконец-то случилось. Странно, я думал, что это произойдет в VS 2019, а не в обновлении.

Я думаю, что он был представлен в этом PR - Microsoft / vstest # 1723, но он не упоминается в примечаниях к выпуску - https://github.com/Microsoft/vstest-docs/blob/master/docs/releases.md

Это был пакет VSTest.Console в .NET Core SDK 2.1.500, управляемый через dotnet test . Я думаю, что он был установлен VS 15.9.

Ожидаете ли вы, что еще много лет у вас появятся пользователи, которым нужен именно net20?

Я не знаю. Статистических данных о том, какая цель используется, нет. С моей точки зрения, поддерживать цель net20 не так уж и сложно. Мой план - оставить это до тех пор, пока это не станет болью в обслуживании.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги