Метод тестирования неубедителен: тест не был запущен. Ошибка?



У меня есть тестовый класс и ниже я опубликовал тест из тест класс



namespace AdminPortal.Tests.Controller_Test.Customer
{
[TestClass]
public class BusinessUnitControllerTests
{
private IBusinessUnitRepository _mockBusinessUnitRepository;
private BusinessUnitController _controller;

[TestInitialize]
public void TestInitialize()
{
_mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>();
_controller = new BusinessUnitController(_mockBusinessUnitRepository);
}

[TestCleanup]
public void TestCleanup()
{
_mockBusinessUnitRepository = null;

_controller.Dispose();
_controller = null;

}

#region Index Action Tests
[TestMethod]
public void Index_Action_Calls_GetAllBusinessUnit()
{
_mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit());

_controller.Index();

_mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit());
}
}
}


когда я запускаю проект, я получаю следующее окно
enter image description here



Я проверил ссылки и тестовый проект имеет ссылку на основной проект.
Любая идея, почему тест не работает или говорят, что они были неубедительными?



редактировать 1:



я увидел сообщение здесь и изменил архитектуру процессора по умолчанию для моего теста на X64, но он все еще не работает.

945   30  

30 ответов:

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

для меня это было довольно неприятно, но я нашел решение для моего случая по крайней мере:

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

надеюсь, это кому-то поможет :)

У меня была та же проблема с resharper и я исправил эту ошибку, изменив опцию:

Resharper = > Options = > Tools = > Unit Testing

Мне просто нужно было снять флажок "тестируемые сборки теневого копирования"

Это был вопрос Resharper. В параметрах Resharper - >Tools - >MSTEST я снял флажок Использовать Legacy Runner, и теперь он работает.

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

  1. снимите флажок "только создавать запускаемые проекты и зависимости от запуска" (параметры -> проекты и решения -> сборка и запуск)
  2. в Configuration Manager убедитесь, что и запускаемый проект, и тестовый проект имеют флажок "построить".

в во второй раз я попал в эту проблему, это было связано с амперсандом в пути к файлу проекта, где находятся тесты. Это работает нормально для ReSharper тест бегун, но не dotCover по. Удалить амперсанд из путь_к_файлу.

Это подтвердили ошибку С dotCover.

для меня просто очистка и восстановление решения исправили его.

для меня, проблема была поврежден Нанит/Для ReSharper настройки XML-файла (из-за неожиданной нехватки энергии).

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

devenv.exe /ReSharper.LogFile C:\temp\resharper.log /ReSharper.LogLevel Verbose

изучение файла выявило следующее исключение:

09:45:31.894 |W| UnitTestLaunch                | System.ApplicationException: Error loading settings file
System.ApplicationException: Error loading settings file ---> System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   --- End of inner exception stack trace ---
   at NUnit.Engine.Internal.SettingsStore.LoadSettings()
   at NUnit.Engine.Services.SettingsService.StartService()
   at NUnit.Engine.Services.ServiceManager.StartServices()
   at NUnit.Engine.TestEngine.Initialize()
   at NUnit.Engine.TestEngine.GetRunner(TestPackage package)
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0()
   at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action)

обратите внимание, что это не приложение тестового проекта.конфиг!

A быстрый поиск примерно определили следующий файл как виновник:

%LOCALAPPDATA%\NUnit\Nunit30Settings.xml

Он существовал, но был пуст. Удаление и перезапуск Visual Studio решили проблему.

(С помощью Visual Studio Professional 2017 v15.3.5 и ReSharper 2017.2.1).

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

исключение при вызове исполнителя 'исполнитель:/ / mstestadapter/v1': Ссылка на объект не указывает на экземпляр объекта.

это привело меня к еще одна нить на SO С раствором. Поверьте, я бы никогда не догадался, в чем дело.

недавно я внес несколько изменений в AssemblyInfo.cs-файл при создании пакета NuGet. Одно из изменений, включая указание значения языка и региональных параметров сборки "en".

Я изменил это:

[assembly: AssemblyCulture("")] 

to это:

[assembly: AssemblyCulture("en")]`. 

вот оно что! Вот что необъяснимо сломало мои модульные тесты. я все еще не понимаю, почему, однако. Но, по крайней мере, все снова работает. После того, как я вернул это изменение (т. е. вернул культуру в""), мои тесты снова начали работать.

надеюсь, что это поможет кому-то там.

в моем случае это была ошибка, которую я сделал при копировании connectionstring в приложении.конфиг.. Я поместил его в тег configSections!

Мне потребовалось некоторое время, чтобы понять это... спасибо против intellisense, хотя.. или это был Решарпер?

У меня была аналогичная проблема. VS 2010, c# CLR 2 Nunit 2.5.7, просто построить > чистое решение от VS помогло решить эту проблему

в моем случае я создал асинхронный тестовый метод, который вернул void. Возвращение Task вместо void решается вопрос.

в моем случае [Test] методы были просто private. Ш-А-я

вы недавно добавили зависимость от DLL? ... как я

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

причина была чрезвычайно глупой: я просто добавил накануне зависимость к дополнительной внешней DLL в подпроекте, и основное приложение проекта действительно построено и работает правильно после изменения. Но мои модульные тесты находятся в сестринском проекте для основного приложения, и, следовательно, тоже были зависимость от этого измененного подпроекта, в котором была вызвана DLL... тем не менее, место выполнения тестового проекта не является основным приложением! Таким образом, изменение сборки для копирования отсутствующей DLL в каталог test runtime исправило проблему.

Я использую VS2013, ReSharper 9.1 с расширением MSpec от ReSharper и Moq. Я испытал ту же самую" неубедительную " ошибку.

оказалось, что один из моих макетов из Moq не был инициализирован, а только объявлен. Те, кто инициализировал все тесты, снова запускались.

в моем случае я получил эту ошибку из-за режима "Release", где сборка проекта UnitTests была просто отключена. Переключение обратно в режим "отладки" исправлено.

действительно удивительно, что ReSharper ничего не может сказать, если он вообще не может найти библиотеку UnitTests. Серьезно, это позор;)

надеюсь, что это поможет кому-то

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

в моем случае, все тесты в некоторых тестовых проектах в решении не запускались после добавления новых проектов. Использование VS 2017 с ReSharper 2017.1.2 здесь.

прежде всего, убедитесь, что вы не тратите время, предполагая, что ваша проблема связана с ReSharper. Легко предположить, что с ReSharper что-то не так, если вы используете его функции модульного тестирования, включая Проводник Модульных Тестов. Откройте Visual Studio Test Explorer под тест и Выполнить Все". Дополнительным преимуществом этого является то, что в окне вывода появится сообщение об ошибке, которое может указать вам в правильном направлении. Если вы заметили, что один и тот же набор тестов не выполняется, то можно с уверенностью предположить, что проблема связана с Visual Studio, а не с ReSharper.

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

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

Я использую VS2010, NUnit 2.6.3 (хотя внутренне ReSharper говорит, что он использует 2.6.2?), ReSharper 7.7.1 & NCrunch 2.5.0.12 и бежал в то же самое "...тест неубедителен...- дело в Нуните, но Нкранч сказал, что все в порядке. На протяжении большей части сегодняшнего дня NUnit & NCrunch были синхронизированы, соглашаясь о том, какие тесты были счастливы, а какие нуждались в рефакторинге, затем произошло что-то, что я до сих пор не понимаю, и некоторое время NCrunch сказал, что у меня были неудачные тесты (но шагая через них показал им пройти), затем решил, что все они работают, и Нунит начал жаловаться на все мои тесты, кроме одного с тем же сообщением "..тест неубедителен..."который я снова смог сделать один шаг к проходу, хотя Нунит продолжал показывать его как"неубедительный").

Я попробовал несколько предложений выше безрезультатно, и, наконец, просто закрыл VS2010 и снова открыл решение. Вуаля, теперь все мои тесты снова счастливы, и NCrunch & NUnit сообщают то же самое опять результаты. К сожалению, я понятия не имею, что изменилось, чтобы заставить их выйти из синхронизации, но закрытие и повторное открытие VS2010, похоже, исправили это.

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

для тех, кто испытывает эту проблему для моего тестового проекта .NET Core 2.0 на Visual Studio 2017 Community (v15.3 3). У меня также была эта ошибка с помощью JetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346 - есть ошибка Я в курсе.

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

  • удалите это из вашего *.csproj file:
  • Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}"

когда я это сделал-тесты начали работать нормально.

если вы используете xUnit, Я решил проблему установкой xunit.running.visualstudio пакета. (в настоящее время с помощью xUnit 2.3.1 и VS17 Enterprise 15.3.5)

моя проблема заключалась в том, что я установил только NUnit с nuget. Я не установил NUnit3TestAdapter, который также требовался.

Install-Package NUnit3TestAdapter

У меня была точно такая же проблема и ничего не помогало.

в конце концов я увидел, что у меня было несоответствие в моих пространствах имен единичного проекта и проекта модульного теста.

пространство имен моего единичного проекта-unit.проект и тестовый проект были названы unit.проект.тесты, но пространство имен по умолчанию теста было таким же, как и единица, оба были единицей.проект.

Как только я обновил пространства имен, чтобы быть разными (одно пространство имен для каждого проекта) все сработало!

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

У меня была такая же ошибка в VS2013 и Resharper9. Проблема была в том, что я забыл аннотировать метод тестирования с помощью [Test] :) Надеюсь, это поможет кому-нибудь

У меня была такая же проблема. Виновником была внешняя ссылка, не совместимая с настройками сборки моего проекта. Чтобы решить, я щелкнул правой кнопкой мыши по проекту->свойства->сборка->цель платформы-> изменение с любого процессора на x86.

в частности *.dll, с которой я работал, была системой.Данные.SQLite. Вот именно *.dll жестко закодирован для 32-битной операции. Параметр "любой процессор" попытался загрузить его как 64 бит.

У меня была точно такая же проблема, никакие тесты не были запущены в моем тестовом проекте. Как это случилось, у меня была выбрана неправильная конфигурация при запуске тестов. Изменение его обратно для отладки исправлены проблемы.

Debug configuration

в моем случае я ссылался на 2 проекта из моего unittestproject. Оба ссылочных проекта использовали dll с тем же именем, но с другой версией.

Я не заметил этого в Visual Studio. Я заметил ошибки в окне просмотра событий.

чтобы решить эту проблему, я использовал bindingRedirect в приложение.конфигурация unittestproject для исправления dll-версии.

мое решение:

NUnit 3.2.0 имеет некоторые проблемы с Resharper-понижение до 2.6.4:

update-package nunit -version 2.6.4

вызвано отсутствующим (не поврежденным) приложением.Конфигурационный файл. Добавление нового (Добавить -> новый элемент... - >Файл конфигурации приложения) исправлено.

в моем случае установлено, что TestCaseSource имеет другое количество аргументов, чем параметр в методе тестирования.

[Test, TestCaseSource("DivideCases")]
public void DivideTest(int n, int d, int q)
{
    Assert.AreEqual( q, n / d );
}

static object[] DivideCases =
{
    new object[] { 12, 3 },
    new object[] { 12, 2 },
    new object[] { 12, 4 } 
};

здесь каждый массив объектов в DivideCases имеет два элемента, которые должны быть 3, поскольку метод DivideTest имеет 3 параметра.

Comments

    Ничего не найдено.