Ответ 1
Кажется, что был плохой конфиг/где-то/. Я переустановил всю систему, затем VS2013 и R #. Тесты теперь отлично работают.
Я пытаюсь начать писать модульные тесты в проекте. Сначала я написал CreateTest и попробовал. Этот тест прошел, и я начал писать другие тесты.
Теперь все мои тесты просто говорят: "Тест не запускается". Это происходит как при попытке запуска всех тестов сразу, так и при выполнении одного теста.
https://github.com/Requinard/OperationOctopus/tree/UnitTest
Все, что я нашел до сих пор, это люди, использующие NUnit. Мы используем стандартную среду тестирования microsoft, с повторным запуском тестов.
[TestMethod]
public void CreateTest()
{
Init.Initialize();
// set up
UserModel user = new UserModel();
user.Address = "Testing Street 1";
user.Email = "[email protected]";
user.Level = 2;
user.Password = "test";
user.RfiDnumber = "00d0wad0aw";
user.Telephonenumber = "0638212327";
user.Username = "testcaseuser";
Assert.IsTrue(user.Create(), "Cannot write user to database");
test_user = user;
}
[TestMethod]
public void ReadTest()
{
Init.Initialize();
// set up
UserModel user = getTestUser();
Assert.AreEqual(user.Email, test_user.Email, "Reading returned an unexpected result");
}
[TestMethod]
public void AlterTest()
{
Init.Initialize();
UserModel user = getTestUser();
user.Email = "[email protected]";
Assert.IsTrue(user.Update(), "Failure during updating");
user.Read();
Assert.AreNotEqual(user.Email, test_user.Email);
}
[TestMethod]
public void DestroyTest()
{
Init.Initialize();
UserModel user = getTestUser();
Assert.IsTrue(user.Destroy(), "Could not destroy user");
}
Вышеуказанные тесты заставят resharper сказать: "Тест не запускается"
Я просто попробовал запустить тесты на своем ноутбуке. Они работали без каких-либо изменений в коде, и тест был завершен мгновенно. Это заставляет меня думать, что я имею дело с неисправным конфигом где-то.
Кажется, что был плохой конфиг/где-то/. Я переустановил всю систему, затем VS2013 и R #. Тесты теперь отлично работают.
Я думаю, что перезапуск всей системы может быть немного преждевременным. Я обнаружил, когда это произойдет, все, что вам нужно сделать, это перезапустить Resharper.
Я обычно делаю это из окна команд в Visual Studio, вам просто нужно вводить эти команды одну за другой
Resharper_Suspend
Resharper_Resume
это, как правило, решает проблему для меня и не требует повторного открытия решения.
Если это не удастся, вы можете очистить кэши. Информацию о том, как это сделать, можно найти здесь здесь.
вот как это сделать из меню VS
Удостоверьтесь, что вы не делаете то, что делаете, и полностью забываете, что это решение находится в режиме выпуска, когда тестовый проект настроен только на режим отладки; -)
В ReSharper 2017.3.1 была исправлена ошибка, исправленная в 2017.3.2: https://blog.jetbrains.com/dotnet/2018/02/01/resharper-ultimate-2017-3-2-bugfix/
Вы можете обновить, используя ReSharper
> Help
> Check for Updates
.
Вы можете увидеть, если у вас была та же ошибка, включив журналы. Вот что у меня было:
--- EXCEPTION #2/2 [LoggerException]
Message = 'Passed version string '2.1.101' does not look to be a valid .net core sdk version'
И в конце концов:
|W| UnitTestLaunch | System.NullReferenceException: Object reference not set to an instance of an object.
at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.NUnitServiceProvider.GetRunStrategy(IUnitTestElement element)
at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.Elements.NUnitElementBase.GetRunStrategy(IHostProvider hostProvider)
at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.CollectProjectsToBuild()
at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.Run(CancellationToken token)
at JetBrains.ReSharper.UnitTestFramework.Launch.UnitTestLaunch.RunStage(Object stageObject)
Мой проект использует NET471, и я запускаю ReSharper 2017.3.1 в Visual Studio 15.6.27428.2005
Это также случилось со мной и нашло причину здесь: http://www.henrikbrinch.dk/Blog/2012/02/15/Making-Resharper-testrunner-work-in-64-bit
Это исправление на самом деле суровое, и я сделал изменение конфигурации: VS2015 → Resharper → Options → Unit Testing → Архитектура платформы по умолчанию - принудительные тесты для запуска в 32-битном процессе
Надеюсь, это поможет вам
Случилось со мной сегодня, и ни одно из вышеперечисленных предложений (очистка кеша, перезапуск VS, приостановка/возобновление resharper) не сработало.
Однако на вкладке "Сеансы модульного теста" в разделе "Ошибка" я увидел, что у меня есть исключение TypeLoadException, которое позволило мне точно определить проблему.
Я периодически сталкиваюсь с этим, потому что я работаю над проектом с несколькими ветвями и переключаюсь между ними, не закрывая Visual Studio. Это иногда может сбить с толку ReSharper, и у меня больше не будет опций NUnit в некоторых проектах.
В Visual Studio Community 2017 с ReSharper 2018.2 первое, что я пытаюсь, - это выгрузить проект, в котором недоступен тестовый запуск NUnit. Иногда это единственный необходимый шаг.
Затем я использую ReSharper-> Параметры → General-> "Очистить кеши", который требует перезагрузки VS.
Затем я снова выгружаю и загружаю плохо работающий проект.
Это решает проблему.