Модульные тесты Xunit не будут выполняться

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

' несколько тестовых адаптеров с одинаковым uri "исполнитель:/ / xunit / VsTestRunner2" были найдены. Игнорирующий адаптер 'В xUnit.Бегун.VisualStudio.Тестадаптер.VsTestRunner'. Пожалуйста, удалите конфликтующий адаптер(ы), чтобы избежать этого предупреждения'

'[xUnit.net 00:00:00.0251250] пропуск: (не могли найти зависимая сборка " Microsoft.Увеличение.DependencyModel, Версия=1.1.0')'

'тест не доступен в C:. Убедитесь, что тест discoverer & исполнители зарегистрированы и платформа & framework версии настройки подходят и повторите попытку.'

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

  • Xunit 2.2.0
  • Visual Studio 15.5.2
  • Windows 10 1709 Сборка: 16299.125

мой проект тестовых проектов.в 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, в то время как они являются обновлением или двумя позади.

кто-нибудь знает обходной путь?

4 ответов


у меня была та же проблема, и я исправил ее, обновив 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 вещей или их комбинация исправили его.


установка или обновление "xunit.бегун.пакет visualstudio" сделал трюк для меня. До этого он не работал с framework 462.


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


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

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

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