Ошибка при выполнении модульных тестов в визуальной студии: отсутствуют тестовые объекты

Я получаю следующую ошибку при запуске модульных тестов из visual studio с использованием resharper:

Test-case objects missing for the following elements: ... Rebuild the project and try again

В подсказке рядом с методом unit test говорится: Inconclusive: Test not run, и я думаю, что он сказал Unit test skipped в какой-то момент. Resharper показывает значок серого глаза.

Там также есть странная проблема с визуальной студией Test Explorer. Он не покажет все мои модульные тесты. Фактически, ему не хватает более 200 моих модульных тестов. Они просто не отображаются в окне Test Explorer. У меня есть несколько тестов, которые появляются и будут работать нормально.

Вещи, которые я уже пробовал: перезагрузка моей машины, очистка, перестройка, изменение всех зависимых проектов для использования той же .net-структуры 4.7.

Я использую VS 2017.net Framework 4.7, Resharper и MSTest. Все с последними обновлениями и версиями.

Ответ 1

Я столкнулся с этой ошибкой после удаления всех пакетов nuget, так как я изменил свою версию .net и не нуждался ни в одном из них для компиляции.

После переустановки пакета nuget MSTest.TestAdapter ReSharper снова начал запускать мои модульные тесты, как и ожидалось.

Install-Package MSTest.TestAdapter

Ответ 2

Я знаю, что это не ответит на вопрос OP, так как он или она попробовал это, но возможно это поможет кому-то еще.

Для меня простой перезапуск Visual Studio решил объекты Test-case, отсутствующие для следующих элементов:... Перестройте проект и попробуйте снова проблему.

Ответ 3

После того, как я ударил головой в течение дня, я получил Test Explorer. Это была целевая платформа.

В свойствах проекта unit test в разделе "Сборка" у меня была цель платформы как x64. Я переключил его на AnyCPU, и Test Explorer сразу же взял мои недостающие модульные тесты. Тем не менее, resharper все еще дает мне ту же ошибку. Я обновлю, если найду решение для него. В то же время я могу, по крайней мере, запустить и отладить мои модульные тесты.

Ответ 4

Для меня это произошло потому, что я установил пакет Nuget для FLEE, который вставил следующую строку в мой файл app.config моего тестового проекта:

<dependentAssembly>
  <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>

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

После того, как я установил более раннюю версию (1.05) пакета FLEE (который использует 4.0.0.0) и изменил номер версии на 4.0.0.0 в bindingRedirect в моем app.config, все снова стало нормальным

Ответ 5

Моя проблема заключалась в использовании неправильной конфигурации сборки.

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

Ответ 6

Я столкнулся с этим при использовании проекта F #. В моем случае проблема заключалась в включении скобок в имя метода тестирования;

[<TestMethod>]
member x.''E is updated where generic form or visit should include (this) UPDATED VISIT AND FORM''() =
        let origExpr = "visit:form:INTQ1AB"
        let checkedExpr = "VISIT2:FormFour:INTQ1AB"
        ...

закончился неокончательным тестом, в то время как снятие скобок с "(это)", как показано ниже

[<TestMethod>]
member x.''E is updated where generic form or visit should include this UPDATED VISIT AND FORM''() =
        let origExpr = "visit:form:INTQ1AB"
        let checkedExpr = "VISIT2:FormFour:INTQ1AB"
        ...

позволил успешно завершить тест.

Ответ 7

Я обновил MSTest.TestAdapter с 1.1.18 до 1.3.2. Это решило это для меня наконец.

Ответ 8

Я столкнулся с этой проблемой, когда позволил Resharper искать недостающие ссылки для Nunit через NuGet. Вместо того, чтобы загрузить нужную мне версию пакета, совместимого с ядром .NET, он взял версию платформы .NET. Я удалил пакет NUnit и переустановил с помощью диспетчера пакетов NuGet, чтобы решить эту проблему.

Ответ 9

После клонирования решения на новую машину я столкнулся с этой ошибкой. Проблема заключалась в том, что у меня не была установлена указанная платформа dotnet - я установил только 2.1 и 3.0, и для этого потребовалось 2.2. Справедливости ради, ошибка в результатах теста действительно сообщала об этом:

Testhost process exited with error: It was not possible to find any compatible framework version
The specified framework 'Microsoft.NETCore.App', version '2.2.0' was not found.
  - The following frameworks were found:
      2.1.13 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
      3.0.0 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
You can resolve the problem by installing the specified framework and/or SDK.
The .NET Core frameworks can be found at:
  - https://aka.ms/dotnet-download
. Please check the diagnostic logs for more information.

Обратите внимание, что Visual Studio требовал перезапуска после установки отсутствующего фреймворка.