TL; DR; Edit 6: Я сузил его и предоставил 5 шагов для воспроизведения проблемы/ошибки.
- Создайте консольное приложение VS2017 С# (.Net Full Framework)
- Добавить метод в Program.cs и сделать класс общедоступным:
public class Program
{
static void Main(string[] args)
{
}
public int Add(int a, int b)
{
return a + b;
}
}
}
- Щелкните правой кнопкой мыши метод
Add
и выберите "Создать" Unit Test:
- Используйте эти настройки для создания нового проекта Unit Test с тестом:
- Добавьте Unit Test
[TestMethod()]
public void AddTest()
{
Program p = new Program();
var r = p.Add(1, 2);
Assert.IsTrue(3 == r);
}
- Меню тестирования > Тестирование Live Unit > Пуск
- Контекстное меню
AddTest()
> Live Testing > Включить
Теперь измените символ Add + на -
Тестирование Live Unit работает, измените символ - на + и пройдет тест Live!!
Теперь добавьте ссылку на DLL Nuget (любой будет делать) - Live Unit Testing больше не работает! Или просто закройте Решение, откройте его и Live Unit Testing больше не работает!
Я установил проект MSUnitTest v2 и начал тестирование Live Unit. Я использую проект Web Api 2..Net(Full Framework v4.5.2).
Я вижу знаки Минуса везде, но не Тик или Кресты.
Я изменяю код так же, как в Live Unit Testing в видеоролике Visual Studio 2017, и часы появляются за минусом, но затем ничего...
Unit Test пройдет, когда я его отлажу:
Когда я наводил указатель мыши на синюю минус, сообщение "Covered by 0 Tests"
Я обнаружил, что вам нужен MSTest.TestAdapter и MSTest.TestFramework как https://developercommunity.visualstudio.com/content/problem/5520/live-unit-test-are-only-showing-minuses-using-micr.html, который я сделал, и ссылаюсь на V1.18:
- Microsoft.VisualStudio.TestPlatform.TestFramework
- Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions
Существует множество бета-тестеров, которые сообщили о той же проблеме:
https://developercommunity.visualstudio.com/content/problem/4376/live-unit-testing-doesnt-work.html
Все сообщения разрешены или не исправлены.
Этот qaru.site/info/157056/.... Я попробовал решение в комментариях, чтобы удалить Microsoft.VisualStudio.QualityTools.UnitTestFramework из Gac, когда я попытался удалить из C:\Windows\сборка. Мне было отказано в доступе и удалении с помощью командной строки разработчика:
GacUtil /u Microsoft.VisualStudio.QualityTools.UnitTestFramework
Результаты в:
Сборка: Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version = 10.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL Не удалось удалить: сборка требуется одним или несколькими приложениями
Может ли кто-нибудь помочь мне заставить Live Unit Testing работать?
Изменить 1:
В VS > Инструменты > Параметры > Тестирование Live Unit, я перешел в Verbose.
Посмотрев на выход, я увидел одно предупреждение:
[15: 48: 26.521 Verbose] - TestDriver - сообщение журнала TestDiscoverer: предупреждение - не удалось инициализировать систему конфигурации
Следуя нескольким ответам в this, я все еще не смог избавиться от "Не удалось инициализировать систему конфигурации" - не уверен, что это красно- селедка или нет, ее единственная подсказка, которую я нашел до сих пор...
Изменить 2:
Я запускал VS2017 в качестве администратора и избавился от "Не удалось инициализировать систему конфигурации". К сожалению, работающий как Admin не имеет никакого значения, он по-прежнему не работает, но не прерывается с любыми исключениями.
Вот подробный журнал. Интересно, что "Подготовка к запуску тестового обнаружения" выглядит так, как будто он нашел тест x86, который я включил.
Однако он явно не может обнаружить тест; "Обнаружено 0 тестов"
[16:52:55.110 Verbose] - Aggregator - Calculating the set of tests that cover 1 files
[16:52:55.110 Verbose] - Aggregator - [Workflow 4] Sending TestRequestEvent with 6 assemblies and 0 tests
[16:52:55.110 Verbose] - TestDriver - [Workflow 4] Received TestRequestEvent
[16:52:55.110 Verbose] - TestDriver - [Workflow 4] Preparing to start test discovery (X64: 0, X86: 1).
[16:52:55.110 Verbose] - TestDriver - [Workflow 4] Start discovering tests from group 0, which contains 1 assemblies.
[16:52:55.599 Verbose] - TestDriver - [Workflow 4] Finished discovering test from group 0.
[16:52:55.599 Verbose] - TestDriver - [Workflow 4] Discovered 0 tests from XYZ.API.ClientService\bin\Debug\XYZ.API.ClientService.dll, updating cached data.
[16:52:55.599 Verbose] - TestDriver - [Workflow 4] Notify Aggregator about completion of test run. (Passed: 0, Failed: 0, Run succeeded: True)
[16:52:55.599 Verbose] - Aggregator - [Workflow 4] Received TestResponseEvent (TestRunCompleted)
[16:52:55.599 Verbose] - Aggregator - [Workflow 4] Coverage data for 0 tests was received during this workflow
[16:52:55.600 Verbose] - BuildManager - Allow to send a single build event.
[16:52:55.599 Verbose] - Aggregator - Starting coverage aggregation cycle - work list has 3 methods
[16:52:55.599 Verbose] - Aggregator - Finished coverage aggregation cycle - work list had 3 methods of which 3 methods were defined in 2 open files
[16:52:55.600 Verbose] - BuildManager - Interrupting build queue -> no new assemblies.
[16:52:55.600 Verbose] - StatusMargin - Received file coverage result
[16:52:55.599 Verbose] - Aggregator - Sending FileCoverageResult for 'C:\XYZProjectCollection\XYZ\XYZ.API.ClientService\Repositories\ValueRepository.cs - C:\XYZProjectCollection\Lincoln\XYZ.API.ClientService\XYZ.API.MiscService.csproj'
[16:52:55.599 Verbose] - Aggregator - [Workflow 4] Sending TestRunCompletedEvent
Изменить 3:
Сегодня я просмотрел трассировки ProcessMonitor. Ничего особо не выделялось, я мог что-то пропустить, но я начинаю чувствовать, что это ошибка, а не проблема с конфигурацией.
Я работаю в действительно заблокированной среде, поэтому может быть, что что-то было заблокировано во время установки vs2017. Я знаю, что домен Unity3D не включен в белый список для загрузки. Хотя все основные компоненты Visual Studio Microsoft установлены. У меня заканчивается диагностическая стратегия устранения неполадок. Любые идеи очень приветствуются!
Изменить 4:
Сегодня утром я решил избавиться от DLL Microsoft.VisualStudio.QualityTools.UnitTestFramework
от GAC. Я сделал это после этих инструкций для преодоления отказа в доступе:
Это привело к нахождению одной из потенциальных причин. Я начал видеть ведение журнала тестирования блочного модуля:
[09:44:59.053 Verbose] - BuildManager - C:\Program Files x86\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(3245,5): error MSB3491: Could not write lines to file "C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\i\XYZ.API.MiscService\Debug\CoreCompileInputs.cache". Access to the path 'C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\i\XYZ.API.MiscService\Debug\CoreCompileInputs.cache' is denied.
[09:44:59.053 Verbose] - BuildManager - C:\Program Files x86\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(4874,5): error MSB3491: Could not write lines to file "C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\i\XYZ.API.MiscService\Debug\XYZ.API.MiscService.csproj.FileListAbsolute.txt". Access to the path 'C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\i\XYZ.API.MiscService\Debug\XYZ.API.MiscService.csproj.FileListAbsolute.txt' is denied.
Я дал себе разрешение на все эти каталоги, просто чтобы исключить любые проблемы с разрешениями:
Это все еще не работает, однако кажется, что я становлюсь ближе, поскольку тесты Live Unit проводят немного дольше, чтобы не работать (т.е. часы, которые появляются поверх минуса, занимают больше времени для обработки).
Затем я снова попробовал ProcMon, и он показал несколько интересных журналов, но не курил.
Вот текущий подробный журнал:
[10:22:07.363 Info] - BuildManager - Build completed (succeeded).
[10:22:07.363 Verbose] - BuildManager - Interrupting build queue -> switching 'build' and 'test' directories.
[10:22:07.363 Verbose] - BuildManager - New 'test' directory: C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\1\
[10:22:07.363 Verbose] - BuildManager - New 'build' directory: C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\0\
[10:22:07.363 Verbose] - Aggregator - [Workflow 4] Received BuildEvent.
[10:22:07.363 Verbose] - Aggregator - assembly: C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.Tests\bin\Debug\XYZ.API.Tests.dll
[10:22:07.363 Verbose] - Aggregator - assembly: C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.AccountClientService\bin\Debug\XYZ.API.AccountClientService.dll
[10:22:07.363 Verbose] - Aggregator - assembly: C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API\bin\XYZ.API.dll
[10:22:07.363 Verbose] - Aggregator - assembly: C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.Helpers\bin\Debug\XYZ.API.Global.dll
[10:22:07.363 Verbose] - Aggregator - assembly: C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.MiscService\bin\Debug\XYZ.API.MiscService.dll
[10:22:07.363 Verbose] - Aggregator - file: 'C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\Repositories\ValueRepository.cs - C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\XYZ.API.MiscService.csproj'
[10:22:07.363 Verbose] - Aggregator - Skip reading spans for assembly C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.Tests\bin\Debug\XYZ.API.Tests.dll with MVID c96c0f4b-b21e-47be-a71e-97ebf8a3d493 since we already have this information from a previous build
[10:22:07.363 Verbose] - Aggregator - Skip reading spans for assembly C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.AccountClientService\bin\Debug\XYZ.API.AccountClientService.dll with MVID 6772f896-04ab-4804-bb18-3ed2c7aeb9b9 since we already have this information from a previous build
[10:22:07.363 Verbose] - Aggregator - Skip reading spans for assembly C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API\bin\XYZ.API.dll with MVID 9c862440-c16a-4efe-8574-76e8c1453c4d since we already have this information from a previous build
[10:22:07.363 Verbose] - Aggregator - Skip reading spans for assembly C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.Helpers\bin\Debug\XYZ.API.Global.dll with MVID a8899d5d-4730-46bf-b4f2-3c2b1b75b0b1 since we already have this information from a previous build
[10:22:07.363 Verbose] - Aggregator - Removing MVID f337ca44-aae6-42ca-8df5-3776ff962372 for project C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\XYZ.API.MiscService.csproj from the file span cache
[10:22:07.363 Verbose] - Aggregator - Adding MVID 8e944276-0eec-43f4-aff3-07e40f8611dc for project C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\XYZ.API.MiscService.csproj to the file span cache
[10:22:07.363 Verbose] - Aggregator - Calculating the set of tests that cover 0 files
[10:22:07.363 Verbose] - Aggregator - Reading spans for assembly C:\XYZProjectCollection\Lincoln\.vs\XYZ.API\18528\t\XYZ.API.MiscService\bin\Debug\XYZ.API.MiscService.dll with MVID 8e944276-0eec-43f4-aff3-07e40f8611dc
[10:22:07.363 Verbose] - Aggregator - Adding 3 methods from 'C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\Repositories\ValueRepository.cs - C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\XYZ.API.MiscService.csproj' to the coverage aggregation work list
[10:22:07.363 Verbose] - Aggregator - Calculating the set of tests that cover 1 files
[10:22:07.363 Verbose] - Aggregator - [Workflow 4] Sending TestRequestEvent with 5 assemblies and 0 tests
[10:22:07.363 Verbose] - TestDriver - [Workflow 4] Received TestRequestEvent
[10:22:07.363 Verbose] - TestDriver - [Workflow 4] Preparing to start test discovery (X64: 0, X86: 1).
[10:22:07.363 Verbose] - TestDriver - [Workflow 4] Start discovering tests from group 0, which contains 1 assemblies.
[10:22:07.834 Verbose] - TestDriver - [Workflow 4] Finished discovering test from group 0.
[10:22:07.834 Verbose] - TestDriver - [Workflow 4] Discovered 0 tests from XYZ.API.MiscService\bin\Debug\XYZ.API.MiscService.dll, updating cached data.
[10:22:07.834 Verbose] - TestDriver - [Workflow 4] Notify Aggregator about completion of test run. (Passed: 0, Failed: 0, Run succeeded: True)
[10:22:07.834 Verbose] - Aggregator - [Workflow 4] Received TestResponseEvent (TestRunCompleted)
[10:22:07.834 Verbose] - Aggregator - [Workflow 4] Coverage data for 0 tests was received during this workflow
[10:22:07.834 Verbose] - Aggregator - Starting coverage aggregation cycle - work list has 3 methods
[10:22:07.834 Verbose] - Aggregator - Finished coverage aggregation cycle - work list had 3 methods of which 3 methods were defined in 5 open files
[10:22:07.834 Verbose] - BuildManager - Allow to send a single build event.
[10:22:07.834 Verbose] - BuildManager - Interrupting build queue -> no new assemblies.
[10:22:07.834 Verbose] - Aggregator - Sending FileCoverageResult for 'C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\Repositories\ValueRepository.cs - C:\XYZProjectCollection\Lincoln\XYZ.API.MiscService\XYZ.API.MiscService.csproj'
[10:22:07.834 Verbose] - Aggregator - [Workflow 4] Sending TestRunCompletedEvent
[10:22:07.850 Verbose] - StatusMargin - Received file coverage result
Изменить 5:
Согласно этому блогу: https://blogs.msdn.microsoft.com/visualstudio/2017/03/09/live-unit-testing-in-visual-studio-2017-enterprise/
В: Почему ничего не происходит после включения или исключения тестов из Live Test Set?
A: Это известная проблема, которую мы не смогли исправить в Visual Studio 2017 версии 15.0. Теперь он исправлен в Visual Studio 2017 версии 15.2.
Оказывается, у меня есть Visual Studio/15.0.0 +26228.9. Обновление до Visual Studio 2017 (v15.2) Устанавливает проблему НЕ.
Я сообщил о проблеме https://developercommunity.visualstudio.com и сохранит все опубликованные. Он не получил сообщения о том, что среда заблокирована.