Как запустить модульные тесты с .NET версии 4.6.2 в Visual Studio 2019?

Я пытаюсь устранить это предупреждение при запуске модульного теста в Visual Studio:

[6/7/2019 19:16:21 Предупреждение] При тестовом запуске будут использоваться библиотеки DLL, созданные для платформы .NETFramework, Version = v4.5 и платформы X64. Следующие библиотеки DLL не соответствуют настройкам фреймворка / платформы. MyProject.Tests.dll создан для Framework 4.6.2 и Platform AnyCPU. Перейдите на страницу http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409 для получения дополнительных сведений об управлении этими настройками.

Я знаю, что мне нужно обновить файл runsettings версией targetframework, соответствующей структуре проекта модульного тестирования (4.6.2). Я просто не могу понять, что это за волшебная струна.

Вот отправная точка:

<!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x64</TargetPlatform>

    <!-- Framework35 | [Framework40] | Framework45 -->
    <TargetFrameworkVersion>Framework45</TargetFrameworkVersion> 
    <!--
    TargetFrameworkVersion needs to be updated, but documentation is unclear on how
    cf. https://github.com/Microsoft/vstest-docs/issues/163
    <TargetFrameworkVersion>.NETFramework,Version=v4.6.2</TargetFrameworkVersion>
    -->     
  </RunConfiguration>

Каждое значение, которое я могу найти для проверки, приводит к следующему исключению:

[6/7/2019 8:34:20 PM Error] Не удалось настроить параметры для плагина runsettings «Конфигурация запуска VSTest», так как возникло следующее исключение: «Произошла ошибка при загрузке настроек. Ошибка: недопустимый параметр "RunConfiguration". Для TargetFrameworkVersion указано недопустимое значение net462 .. Свяжитесь с автором плагина.

[6/7/2019 8:34:20 PM Diagnostic] Создать исключение настроек тестового запуска: System.Xml.XmlException: произошла ошибка при загрузке настроек. Ошибка: недопустимый параметр "RunConfiguration". Недопустимое значение 'net462', указанное для 'TargetFrameworkVersion' .. в Microsoft.VisualStudio.TestWindow.VSTest.TestRunSettingsService.ValidateRunConfigurationSettings (XPathNavigator runSettingsNavigator) в Microsoft.VisualStudio.Studio.TestWindow.FrameworkSettingsSettingsSettings (платформа.TestWindow. Строка solutionDirectory, IDictionary`2 sourceSettings, IXPathNavigable inputRunSettings, струнных и incompatibleSourcesWarning) в Microsoft.VisualStudio.TestWindow.VSTest.TestRunSettingsService.AddRunSettings (IXPathNavigable inputRunSettingDocument, IRunSettingsConfigurationInfo configurationInfo, журнал ILogger) в Microsoft.VisualStudio.TestWindow.Controller.Request.GenerateTestRunSettings (RunSettingConfigurationInfoState infoState)

Ценности, которые я пробовал:

  • .NETFramework, версия = v4.6
  • .NETFramework, версия = v4.6.2
  • v4.6.2
  • net46
  • net462
  • Каркас46

Похожий:


person DonClaveau    schedule 08.06.2019    source источник
comment
Вы узнали, как запускать тесты с v4.6.2? Ответ ниже не помог в моем случае   -  person RoG    schedule 03.07.2019
comment
У меня тоже не сработало. Все еще смотрящий. Друг из Microsoft посоветовал мне просто перейти на .NET Core.   -  person DonClaveau    schedule 06.07.2019


Ответы (2)


Была такая же проблема с тестами Framework 4.6.1. Начиная с исходного сообщения, страница, на которую ссылается https://developercommunity.visualstudio.com/content/problem/579073/test-discovery-reporting-dlls-do-not-match.html ссылка была обновлена ​​с примечанием, что проблема устранена в Visual Studio 16.2, выпущенной 24 июля. Я обновился, удалил весь раздел RunConfiguration из файла .runsettings, и теперь модульные тесты выполняются без ошибок.

person Brian Perry    schedule 31.07.2019
comment
Я все еще вижу предупреждение 16.2.1. Подтверждено, что это разрешено в Visual Studio Preview (16.3.0 Preview 1.0), хотя в какой-то момент должно быть сброшено труба. - person DonClaveau; 08.08.2019

Я просто удалил TargetFrameworkVersion, и в моем случае это сработало. Я предполагаю, что Visual Studio автоматически выбирает правильный фреймворк, если это поле не указано.

<!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>.\TestResults</ResultsDirectory>

    <!-- [x86] | x64  
      - You can also change it from menu Test, Test Settings, Default Processor Architecture -->
    <TargetPlatform>x64</TargetPlatform>

  </RunConfiguration>
person chronofanz    schedule 20.06.2019