it-roy-ru.com

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

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

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

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

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

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

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

24
goku_da_master

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

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

Install-Package MSTest.TestAdapter

18
workabyte

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

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

16
gabrielkerekes

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

В свойствах проекта модульного теста в разделе Build у меня была цель Platform x64. Я переключил его на AnyCPU, и Test Explorer немедленно взял мои недостающие юнит-тесты. Тем не менее, resharper все еще дает мне ту же ошибку. Я обновлю, если найду решение для этого. А пока я могу, по крайней мере, запустить и отладить свои юнит-тесты сейчас.

3
goku_da_master

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

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

0
Richard Moore

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

0
ekenman

Я столкнулся с этим при использовании проекта 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"
        ...

закончился неокончательным тестом, тогда как снятие скобок с «(this)», как показано ниже

[<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"
        ...

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

0
pilsdumps

для меня это произошло потому, что я установил пакет 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, все снова стало нормальным

0
Daniël Tulp