Ошибка при выполнении модульных тестов в визуальной студии: отсутствуют тестовые объекты
Я получаю следующую ошибку при запуске модульных тестов из 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 требовал перезапуска после установки отсутствующего фреймворка.