Тест не найден. Убедитесь, что установленные средства обнаружения и исполнители тестов, настройки версии платформы и фреймворка подходят, и повторите попытку.

Я занимаюсь обновлением существующего решения до .Net 4.6.1, и мне не удалось запустить наши модульные тесты во время сборки сервера. Локально они запускаются, как и ожидалось, и возвращение версии фреймворка к .Net 4.5.1 заставляет их снова запускаться на сервере.

Я получаю следующую ошибку:

Тест не найден. Убедитесь, что установленные средства обнаружения и исполнители тестов, настройки платформы и версии фреймворка соответствуют требованиям, и повторите попытку.

Я воспроизвел проблему в более простой настройке:

  • Решение с одним проектом C # Unit Test с двумя тестами (один неудачный, один пройденный).
  • Определение сборки XAML с использованием шаблона по умолчанию (TfvcTemplate.12.xaml)
  • Сервер сборки XAML TFS 2015 с обновлением 1 с установленным обновлением 1 для Visual Studio Enterprise 2015 (шесть похожих серверов, и все они дают одинаковый результат)

person Tore Østergaard    schedule 14.01.2016    source источник
comment
По словам Брайана Гарри из Microsoft, это ошибка, которую они в настоящее время исследуют. Это должно быть исправлено в обновлении 2, а временное решение должно быть опубликовано позже. Источник: ссылка   -  person Tore Østergaard    schedule 21.01.2016
comment
У меня такая же проблема для .Net 3.5 SP1 в Visual Studio 2013 с обновлением 5.   -  person Andrey Bushman    schedule 13.07.2016
comment
@AndreyBushman: Ошибка могла быть и в 2013U5, поскольку он был выпущен вместе с 2015RTM. Но обходной путь должен работать и в вашем случае.   -  person Tore Østergaard    schedule 21.07.2016
comment
У меня была аналогичная проблема, обходной путь был просто в vs, в настройках теста, чтобы выбрать правильный бит процессора по умолчанию (32/64) и не поддерживать работу движка. (по сравнению с 2017.x)   -  person kfn    schedule 24.06.2018


Ответы (33)


Сейчас это известная проблема для .Net 4.6.

Невозможно запустить модульные тесты .Net 4.6.x как часть сборки XAML TFS с TFS 2015 UPdate1 Источник: https://connect.microsoft.com/VisualStudio/feedback/details/2245723

Вот аналогичный вопрос для справки: Невозможно запустить .Net 4.6 Модульные тесты сервера сборки TFS 2015 XAML

person PatrickLu-MSFT    schedule 16.01.2016
comment
Привет, Патрик. Обе ссылки, которые вы предоставляете, - это дела, открытые мной, поэтому я бы не стал доверять им как справочникам ;-). - person Tore Østergaard; 18.01.2016

Вы можете попробовать изменить архитектуру процессора по умолчанию в настройках теста с X86 на X64. В моем случае это была проблема.

Это происходит, если целевая платформа вашего тестируемого проекта установлена ​​на x64.

Скриншот настроек теста

person rubeonline    schedule 28.05.2018
comment
Это решило проблему для меня. В моем случае и тестируемый, и тестовый проект были установлены на x86. Тесты были неприятными, но не прошли. После того, как я изменил его на Any CPU, тесты запустились. - person datchung; 15.08.2019
comment
У меня была такая же проблема, и это решило ее. Мне также весьма подозрительно, что это могло иметь плохой договорно-синергетический эффект на мои основные ссылки на проекты, которые внезапно перестали загружать конкретную DLL, но окончательно не определили этот неприятный побочный эффект. - person Allen; 21.03.2020

Моя сборка тоже не нашла тестов. Моя установка и решение для поиска тестов следующие.

Я использую VSTS (Visual Studio Team Services) и имею сборку, настроенную для обновления пакетов NUGET при каждой сборке. Я использую NUnit и обнаружил, что выполнение следующей команды NUGET (из консоли диспетчера пакетов в Visual Studio) для добавления библиотеки NUnitTestAdapter в мой тестовый проект и проверка в файле packages.config позволили запустить тесты в моей сборке VSTS.

Install-Package NUnitTestAdapter

Как упоминает Морис в комментарии к этому сообщению для NUnit3, используйте следующий пакет NUGET (ищите другие utils по ссылке, например: dotnet CLI и Paket CLI)

Install-Package NUnit3TestAdapter

Надеюсь это поможет.

person Nick Rubino    schedule 13.04.2017
comment
Я тоже сейчас использую VSTS. Как было рекомендовано, я добавил NUnit3TestAdapter (поскольку я использую NUnit 3.8.1), и это решение решило мою проблему. Спасибо :-) - person Maurice Klimek; 11.10.2017
comment
Install-Package NUnit3TestAdapter решил мою проблему :) - person Bimal Das; 15.12.2018

В моем случае мне пришлось:

  1. Преобразование тестового проекта в netcore 2.0 (было netstandard 2.0)

  2. Добавить пакет nuget xunit.runner.visualstudio

Ссылка: http://web.archive.org/web/20180331085013/http://www.neekgreen.com/2017/11/20/xunit-no-test-is-available/

person scrat.squirrel    schedule 10.04.2018
comment
такая же проблема была со мной. Я использую xunit с ядром .net - person Amna; 16.04.2018
comment
Это также сработало для меня в Visual Studio 2017 с xunit и .NET Core 2.1. - person Thorkil Værge; 19.07.2018
comment
в моем случае это был проект .net 4.6.1, поэтому единственное, чего не хватало, - это бегун xunit. Установил и заработал. - person Juan; 20.02.2019
comment
То же, что и Хуан. Отсутствовал только пакет runner. Запуск этого в диспетчере пакетов для тестового проекта решил это: install-package xunit.runner.visualstudio - person Premil; 02.06.2020
comment
Подтвержденный. Случайно удалил пакет nuget runner.visualstudio (оставив пакет xunit). Повторное введение решило эту проблему. Спасибо! - person JohannSig; 19.02.2021

Я использую MSTest. Для меня это было несовпадение версии и отсутствие другого зависимого пакета -

1) Моя папка пакета содержит только пакет MSTest.TestFramework.1.2.1. В моем файле проекта (.csproj) ссылка в Target Name была пакетом MSTest.TestAdapter.1.2.0, которого не было в папке пакета. В моем файле packages.config также есть ссылка на MSTest.TestFramework.1.2.0.

2) Итак, я установил MSTest.TestAdapter.1.2.0 из диспетчера пакетов nuget и выровнял версию MSTest.TestFramework до 1.2.0 в файле проекта и пакета. Наконец, я добавляю в ссылку Microsoft.VisualStudio.TestPlatform.TestFramework и Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.

Тогда все было ОК. Надеюсь, это кому-то поможет.

person quasar    schedule 18.04.2018
comment
Я столкнулся с этим с .Net 4.6.1 VS2017. Я закончил откат до 1.2.0 - обязательно убедитесь, что у вас нет двух разных версий в папке пакетов или в системе управления версиями. - person Jeremy Thompson; 09.05.2018
comment
Казалось, что я нашел тесты, но да, отсутствие MSTest.TestAdapter было реальной проблемой. Никаких хороших ошибок или предупреждений (VS2017 15.8). Все выглядело хорошо, за исключением того, что тесты не были найдены, несмотря на то, что они появились в обозревателе тестов ... Итак, когда я установил пакет MSTest.TestAdapter, мои тесты неожиданно прошли, как ожидалось. Спасибо MS - 3 часа потрачены впустую ........... - person James Joyce; 06.06.2018
comment
Установка MSTest.TestAdapter 1.4.0 сделала это за меня в VS 2019. Благодаря вам я потратил только 30 минут. - person furman87; 19.08.2019

Я получил эту ошибку и смог ее исправить.

  1. Я использую Visual Studio Professional 2017
  2. В VS я перешел в Инструменты -> Расширения и обновления.
  3. В верхней части меню я заметил, что мой адаптер NUnit отключен.
  4. Я нажал кнопку [Включить]
  5. Я смог запустить тесты без ошибок.
person J Wood    schedule 31.10.2018
comment
Да! И не забудьте перезапустить Visual Studio. Это было необходимо для меня. - person Michael Levy; 28.11.2018
comment
Что это означает в верхней части меню? - person Sean Kendle; 24.02.2019
comment
@SaiyajinGohan. После выполнения шага 2 откроется окно «Расширения и обновления». Вверху этого окна я увидел, что адаптер NUnit отключен. Надеюсь, это проясняет .... - person J Wood; 25.02.2019
comment
Спасибо за это, я все еще не мог заставить это работать с проектом, над которым я работал. К счастью, это был тестовый проект, и следующий сработал. До сих пор остается загадкой, почему. - person Sean Kendle; 25.02.2019

Эта проблема снова возникает в Visual Studio 2017. Скорее всего, еще одна ошибка, но результат тот же.

Один из способов обхода, который кажется работающим, - это удалить удаленный отладчик Microsoft Visual Studio 2017 с затронутого компьютера.

person Csapi007    schedule 05.04.2018

Я столкнулся с той же проблемой в VSTS с .Net 4.6.2. Если вы видите это из вывода консоли VSTS, обходной путь, предоставляемый @Sushil, все еще работает в VSTS и необходим. К сожалению, задача Test Assemblies, предоставленная Microsoft, проходит, поэтому вы даже не узнаете о проблеме, если не проверите вывод и не обнаружите, что ни один из ваших тестов действительно не выполнен!

Исправление для тестирования VSTS

person raterus    schedule 15.12.2017
comment
Моя проблема заключалась в (локальном) TFS 2015 Update 1, и она была исправлена ​​в обновлении 2. Я не уверен, существует ли такая же проблема с VSTS. - person Tore Østergaard; 16.12.2017

  1. Установите последнюю версию Nunit и NUnitTestAdapter из пакета NUGET.
  2. Перейдите - ›Тест -› Настройки теста - ›Архитектура процессора по умолчанию -› Перейти на X64
  3. Постройте решение.
  4. Это решит проблему запуска теста и отладчика в модульном тестировании, и он начнет работать.
person Karthikeyan Nandagopalan    schedule 29.11.2018
comment
Это действительно сработало для меня после того, как я ударил головой по всем направлениям и предложениям. - person rajibdotnet; 03.09.2020

Закину свой раствор в кучу. В моем случае я добавляю пару проектов к существующему решению вместе с тестовыми проектами для них. Мы используем MSTest. В решении был включен предыдущий файл UnitTest.testsettings, который вызывал проблемы совместимости.

Щелчок по файлу настроек удалил проверку, и тестовый запуск был успешным для моих тестов.

введите здесь описание изображения

person jwatts1980    schedule 16.01.2019
comment
Спасибо большое - person Chris; 16.04.2021

Если вы запускаете свои тесты внутри докера, используя многоступенчатую сборку, и тесты не найдены. Убедитесь, что вы копируете все файлы, а не только файлы проекта, как показано ниже в разделе Dockerfile.

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY ["MainProject/FirstApp.csproj", "MainProject/"]
COPY ["TestProject/*", "TestProject/"]

RUN dotnet restore "TestProject/TestProject.csproj"
RUN dotnet build "TestProject/TestProject.csproj" -c Release
RUN dotnet test "TestProject/TestProject.csproj" -c Release
person Bassam Gamal    schedule 12.06.2019
comment
Это действительно меня укусило. Я думаю, что ключ к тому, что это происходит, заключается в том, что он НАХОДИТ DLL модульного теста, но НЕ находит в ней никаких тестов. Я также обнаружил, что размещение этой строки после ваших операторов копирования позволит вам проверить, что скопировано WAS (здесь / app / tests - ваш целевой каталог в образе Docker): RUN file = $ (ls -al / app / tests) && echo $ file (см. этот пост для получения дополнительной информации об эхо) - person David Yates; 11.09.2019

Я исправил эту проблему, переустановив все пакеты NuGet, связанные с тестированием для проекта: Xunit, Xunit.runner.vistualstudio, Microsoft.Net.Test.Sdk

person n.shojaei    schedule 28.11.2018

Я исправил эту проблему в тестовом проекте VS 2017 и 4.6.2, выполнив следующие действия:

  1. Удалите ссылки на Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll и расширения.
  2. Установите пакет Nuget Microsoft.VisualStudio.QualityTools.UnitTestFramework.Updated.
person Ste Brown    schedule 14.06.2018

Убедитесь, что у вас установлен nuget «Microsoft.NET.Test.Sdk».

person lordpansar    schedule 17.10.2018

Этот вопрос, очевидно, задают люди с различными сценариями, мой ответ будет касаться запуска тестов XUnit в проекте .NET Core с использованием конвейера сборки в Azure DevOps. но может помочь и другим.

  • Убедитесь, что у вас установлены тестовые адаптеры XUnit из nuget в соответствии с этим ответом.
  • В yaml для конвейера сборки добавьте otherConsoleOptions: '/framework:.NETCoreApp,Version=v3.1' к inputs вашего VSTest@2 шага (с номером версии, установленным для той версии .NET Core, которую вы используете). См. эту документацию для получения дополнительной информации.
  • Хотя это не обязательно, я бы порекомендовал также добавить failOnMinTestsNotRun: true, чтобы конвейер сборки сообщал о сбое при выполнении нулевых тестов.
  • Если вы запустите сборку на этом этапе, вы можете обнаружить, что ваши тесты выполняются, но конвейер выдает ошибку The library 'hostpolicy.dll' required to execute the application was not found. Вы можете решить эту проблему, изменив свой фильтр со значения по умолчанию **\*test*.dll на **\*test.dll (обратите внимание на удаленную звездочку) или какой-либо другой шаблон, который будет соответствовать DLL вашего тестового проекта. Причина в том, что XUnit помещает файл с именем testhost.dll в выходной каталог, как описано в эта проблема с github.

Если вы используете старые конвейеры, в которых не используется yaml, должны быть доступны те же параметры. В этом ответе рассматривается добавление фреймворка. Я предполагаю, что также будет возможность не выполнить задачу, если минимальное количество тестов не запустить или что-то подобное.

person Tim    schedule 30.10.2020

У меня возникла аналогичная проблема, и я заметил, что каким-то образом в мой тестовый проект был добавлен файл app.config. Удаление этого файла конфигурации исправило это для меня.

person thatWiseGuy    schedule 27.09.2018

Используя .Net Core с конвейером сборки в TFS 2017, мой этап тестирования Visual Studio проходил без фактического выполнения каких-либо тестов. Пришлось отредактировать шаг «Расширенные параметры выполнения» -> «Другие параметры консоли», чтобы включить:

/framework:".NETCoreApp,Version=v2.0"

(Это поле также содержит /platform:x64)

person Mark    schedule 27.09.2018

Я получил эту ошибку, потому что мой класс модульного теста не был общедоступным.

Ex:

class ClientTests

Ошибка вывода:

...\bin\Debug\Tests.dll] UTA001: TestClass attribute defined on non-public class ClientTests

Исправление:

public class ClientTests

person Jared Beach    schedule 02.11.2018

Нашел способ! Наверное, не самый ортодоксальный, но в спешке мне помогло:

  1. Обновите пакеты MSTest.TestAdapter и MSTest.TestAdapterFramework до версии 1.4.0, выбрав Инструменты> Диспетчер пакетов NuGet.
  2. Очистите раствор и снова запустите тесты.

Я не думаю, что в этой версии есть что-то особенное, но ее обновление определенно очищает любую плохую ссылку в решении / проекте.

person dave_077    schedule 08.04.2019

Я использую MSTest.

Я установил из Nuget последнюю версию MSTest.TestFramework и заменил OOB Удалить ссылки на Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Затем установили из neget последнюю версию Microsoft.TestPlatform

Это позволило мне запустить тест с помощью команды:

".\packages\Microsoft.TestPlatform.16.6.1\tools\net451\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" "UnitTestProject1\bin\Debug\UnitTestProject1.dll" /logger:trx

Но у меня такая же ошибка. Основная причина ошибки в том, что я не указал тестовый адаптер, который анализирует сборку и находит тесты.

Решение:

  1. Установите пакет nuget MSTest.TestAdapter

  2. В конце команды укажите тестовый адаптер:

    /TestAdapterPath:.\packages\MSTest.TestAdapter.2.1.2\build_common

person MirrorBoy    schedule 01.07.2020

Я столкнулся с аналогичной проблемой, когда попробовал nUnit в VS 2017, и это не основной проект. Установка NUnit3TestAdapter устранила проблему.

person Surendra Rayapati    schedule 03.11.2018

Я решил эту проблему, установив NuGet NUnit3TestAdapter в свой проект (https://www.nuget.org/packages/NUnit3TestAdapter/).

dotnet add package NUnit3TestAdapter --version 3.17.0

Мой файл .csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
    <PackageReference Include="NUnit" Version="3.12.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
    <PackageReference Include="RestSharp" Version="106.11.7" />
  </ItemGroup>

</Project>
person Osanda Deshan    schedule 03.10.2020

Это просто повторение решения, предложенного ранее @Sushil.

Это известная проблема в Team Foundation Server 2015 RTM + обновление 1 и будет исправлена ​​в обновлении 2, ссылка.

Существует обходной путь, описанный @Sushil здесь, который включает добавление файла .runsettings, который принудительно запускает средство выполнения тестов на более старую платформу .Net (пожалуйста, не указывайте его через" Добавить / изменить запуск теста " "диалоговое окно, так как добавление его непосредственно в редактор процесса сборки будет проигнорировано).

person Tore Østergaard    schedule 04.02.2016

В Visual Studio 2017 я просто удаляю и переустанавливаю NUnitTestAdapter или устанавливаю новый пакет, например пакет NUnitTestAdapter.WithFramework, и проблема исчезает.

person Ali Yousefi    schedule 30.09.2018

У меня такая же проблема. Я использую Visual Studio 2017 Community Edition.

введите здесь описание изображения

Я использовал эти шаги, чтобы успешно обнаружить все мои тестовые примеры и успешно запустить его:

  • Сначала перейдите в раздел «Расширения и обновления», установите тестовый адаптер NUnit3. Если у вас уже есть, просто включите его.

  • Перезагрузите Visual Studio 2017,



































































































    нажмите «Завершить задачу».

  • После этого перестройте свой тестовый проект, и все тестовые примеры будут идентифицированы, и теперь вы можете начать запускать свои тестовые примеры.

person Willy David Jr    schedule 08.01.2019

В моем случае переустановка адаптера Nunit3, удаление временных папок, изменение архитектуры и ничего не помогло. Это из-за того, что Daemon Resharper вызвал проблему.

Add or Remove Programs> Find Resharper > Repair > Install again > Restart VS 

Это решает проблемы.

person Riyaz Hameed    schedule 28.01.2019

Эта ошибка может произойти для асинхронных тестов, если у вас неправильный тип возвращаемого значения. Тип возврата должен быть Task, а не void.

person user3533716    schedule 13.02.2019

После добавления TestAdapterPath в командир у меня это сработало:

vstest.console.exe Xom.Gci.Lvf.FileParserInvoker.UnitTests.dll /TestAdapterPath:"C:\****\****\{SolutionFolder}"
person dixiashi    schedule 08.05.2019
comment
Прежде всего, вы должны убедиться, что тестовый пример можно запустить в VS IDE. - person dixiashi; 08.05.2019

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

ошибка не зависела от Visual Studio (тестировалась с помощью инструментов CLI dotnet и почти голого теста UNit), и это было только при нацеливании на .NET 4.7.1. Приложение dotnetcore работает нормально.

также запуск тестов с Nuint3 CLI nunit3-console.exe Tests.csproj показывает ошибку:

«Либо сборка не содержит тестов, либо правильный тестовый драйвер не найден».

ошибка возникла из-за того, что тестовый адаптер не удалось найти на (подключенном) сетевом диске или общем ресурсе, и была решена путем его локального копирования и повторного запуска.

person Falco Alexander    schedule 17.05.2019

Попробуйте запустить vstest.console.exe с --diag:diag.txt и проверьте вывод. Для меня это были сбои загрузки DLL для тестовых адаптеров из моего рабочего каталога:

TpTrace Information: 0 : 14976, 1, 2020/03/10, 15:34:22.120, 57158093583, vstest.console.exe, AssemblyResolver.OnResolve: Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter: Failed to load assembly. Reason:System.IO.FileLoadException: Could not load file or assembly 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)

File name: 'file:///C:\Directory\Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

Я работал над этим, добавляя <loadFromRemoteSources enabled="true"/> под <runtime> в vstest.console.exe.config

person andrew.rockwell    schedule 10.03.2020

Я только что рассмотрел эту проблему. Кажется, причин для этого может быть много. В моем случае я пробовал несколько кодов и из-за этого я переименовал проект, удалил его ... добавил его снова ... и внезапно мой единственный тест перестал работать, и в окне вывода теста отображалась эта ошибка: Тест не найден. Убедитесь, что установленные тестовые обнаружители и исполнители, настройки версии платформы и фреймворка подходят, и повторите попытку. В выходных данных отладки показывались ошибки, связанные с платформой: Следующие библиотеки DLL не соответствуют текущим настройкам, а именно .netframework, версия 4.5 и платформа. X86.

Использование VS 2019 v 16.8.0 Тестовый проект на .NET Framework 4.8, настроенный для отладки / любого процессора

Попробовав кучу вещей, решение было

  • Закройте Visual Studio
  • Переименуйте папку, в которой находится ваше решение. Например: C: \ Git \ Решение для C: \ Git \ Solution2
  • Откройте VS и загрузите свое решение. Попробуйте запустить тест.

Это сработало для меня, надеюсь, это сработает для вас.

person Aislan Gelatti Rocha    schedule 28.03.2021

если вы уже установили тестовый адаптер в тестовом проекте, попробуйте удалить его из проекта и снова установить его в тестовый проект.

Это базовое исправление работает у меня.

person Parth Darji    schedule 31.10.2019

Для тех, кто сталкивается с подобной проблемой. Вот решение, пожалуйста, установите SpecFlowPlusRunner.

Я пробовал другие решения, такие как переустановка, удаление кеша и т. Д. Но решение на самом деле другое: нам нужно установить SpecRun.SpecFlow2.3.0 для visualstudio 2017. Это решило проблему.

Надеюсь, это поможет всем.

person Laxmi    schedule 09.07.2020