Я обнаружил, что один из моих тестов, который проходит в VS2013, терпит неудачу в VS2015, тест вызывает службу, которая включает, среди прочего, вызов Console.Clear();
чтобы узнать, что происходит, я сделал простой unit test
[TestMethod]
public void ExampleTest()
{
Console.Clear();
}
Этот тест проходит в visual studio 2013, но в 2015 году я получаю следующую ошибку:
Имя теста: ExampleTest Test FullName: solution.Common.Test.CacheManagerTest.ExampleTest Источник теста: C:\solution.Common.Test\CacheManagerTest.cs: строка 34 Результат теста: сбой Продолжительность теста: 0: 00: 00.3015003
Результат StackTrace: at System.IO.__ Error.WinIOError(Int32 errorCode, String maybeFullPath) в System.Console.GetBufferInfo(Boolean throwOnNoConsole, Boolean & успешно) в System.Console.Clear()
at sol.Common.Test.CacheManagerTest.ExampleTest() в C:\solution.Common.Test\CacheManagerTest.cs: строка 35 Сообщение результата:
Метод теста Alexandria.Common.Test.CacheManagerTest.ExampleTest бросил exception: System.IO.IOException: дескриптор недействителен.
Я понимаю, что это плохой дизайн для моего сервиса, если он не вызван консолью. Причина, по которой я задаю этот вопрос, - понять, почему это происходит в новой версии Visual Studio. Это предполагаемое поведение? Что изменилось?
Я не видел ничего очевидного в журнале изменений, который, похоже, был бы связан с этим.
Изменить: я вызываю Console.clear из следующей DLL
Microsoft\Framework.NETFramework\v4.5.1\mscorlib.dll
Изменить 2: