it-swarm.com.ru

Модульные тесты Xunit не запускаются

Я полностью застрял в этом вопросе. Так что у моей команды есть проект модульного тестирования в проекте тестирования услуг. Тесты обнаруживаются в тестовой панели Explorer, однако, когда я пытаюсь запустить тесты, я получаю следующие ошибки: 

'Несколько тестовых адаптеров с одинаковым URI 'executor: // xunit/VsTestRunner2' были найдены. Игнорирование адаптера 'Xunit.Runner.VisualStudio.TestAdapter.VsTestRunner. Пожалуйста, удалите конфликтующий адаптер (ы), чтобы избежать этого предупреждения

'[xUnit.net 00: 00: 00.0251250] Пропуск: (не удалось найти зависимая сборка' Microsoft.Extensions.DependencyModel, Version = 1.1.0 ')'

«Тест на C:\недоступен. Убедитесь, что тест первооткрыватели и исполнители зарегистрированы и версия платформы и платформы настройки подходящие и попробуйте еще раз.

Контекстная информация:

  • Xunit 2.2.0
  • Visual Studio 15.5.2
  • Windows 10 1709 Build: 16299,125

Мои тестовые проекты project.json: 

{
   "version": "1.0.0-*",
   "testRunner": "xunit",
    "dependencies": {
       "dotnet-test-xunit": "2.2.0-preview2-build1029",
       "Microsoft.AspNetCore.Mvc.ViewFeatures": "1.1.3",
       "Microsoft.DiaSymReader": "1.0.8",
       "Microsoft.DiaSymReader.Native": "1.4.1",
       "Microsoft.Extensions.Logging.Abstractions": "1.1.2",
       "Microsoft.Extensions.Testing.Abstractions": "1.0.0-preview2-003121",
       "Newtonsoft.Json": "9.0.1",
       "WebServices": "1.0.0-*",
       "xunit": "2.2.0",
       "xunit.abstractions": "2.0.1",
       "xunit.assert": "2.2.0",
       "xunit.core": "2.2.0",
       "xunit.extensibility.core": "2.2.0",
       "xunit.extensibility.execution": "2.2.0",
       "xunit.runner.utility": "2.2.0"
   },
   "frameworks": {
    "net461": {
        "dependencies": {
            "Microsoft.NETCore.Platforms": "1.1.0"
        }
    }
}

Странно то, что это работает для членов моей команды. Но не я. Различия в наших средах: последнее обновление от Windows и Visual Studio, хотя они или являются последним обновлением. 

Кто-нибудь знает об обходном пути?

16
CMR

У меня была та же проблема, и я исправил ее, обновив Visual Studio 2017 с 15.5.2 до 15.5.4 и обновив ссылки на мой тестовый проект из:

<ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
    <PackageReference Include="xunit" Version="2.2.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>

чтобы:

<ItemGroup>
    <PackageReference Include="xunit" Version="2.3.1" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
</ItemGroup>

И перезапуск Visual Studio (очевидно, VS кэширует и использует предыдущую версию даже после того, как вы обновили).

Не уверен, что одна из 3 вещей или их комбинация исправили это.

12
Xavier Poinas

Установка или обновление пакета "xunit.runner.visualstudio" помогли мне. До этого он не работал с фреймворком 462.

8
Pravin

Я столкнулся с той же проблемой, но у меня уже была установлена ​​Visual Studio 2017 15.5.4. Чтобы заставить его работать, я обновил все ссылки, связанные с xunit, и теперь мои ссылки, относящиеся к .csproj, выглядят так:

<ItemGroup>
   <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
   <PackageReference Include="xunit" Version="2.3.1" />
   <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>

Не совсем уверен, что не работает, но я советую убедиться, что эти ссылки находятся внутри csproj и имеют эти минимальные версии.

1
Alexei

У меня была такая же проблема, как у вас, указав could not find dependent Assembly; на самом деле, эта сборка была там и доступна для бегуна xUnit VS. Тем не менее, в действительности проблема заключалась в том, что Visual Studio по умолчанию настроен на использование тестера 32bit. «Зависимая сборка», которую она не могла найти, представляла собой просто архитектуру процессора, отличную от используемой программы запуска тестов xUnit.

Чтобы исправить, как уже упоминалось здесь , из меню Visual Studio перейдите в Test -> Test Settings -> Default Processor Architecture и установите для него значение X64, если вы используете сборки 64bit, или X86, если вы используете сборки 32bit. Ошибка, которую дает бегун xUnit VS, вводит в заблуждение, пытаясь устранить эту проблему.

Эту проблему я видел при установке Visual Studio на новый компьютер. Тесты выполнялись на моем компьютере в Visual Studio, но не на моем ноутбуке.

0
Michael Yanni