Как получить TestDriven.net для создания полезного XML-файла покрытия кода с помощью NCover?
Шаги к репро:
- Создайте проект C# в VS 2010 Professional для 32-разрядной версии Windows 7 Ultimate.
- Напишите несколько модульных тестов с помощью мастера тестов модулей VS C#
- Загрузите и установите последнюю версию RTM или бета-версию TestDriven.Net.
- Щелкните правой кнопкой мыши по проекту тестирования и выберите Test With NCover.
- Подождите
- Смотрите, что окно NCover пусто
Как получить TestDriven.net для создания полезного XML-файла покрытия кода с помощью NCover?
До сих пор я пытался перезагрузиться, удалить RTM-версию и установить бета-версию, а также запустить в режимах Debug & Release.
Обновление с текстом окна вывода:
------ Test started: Assembly: TestProject1.dll ------
NCover v1.5.8 - Code Coverage Analysis for .NET - http://ncover.com
NCover.Console v1.5.8 - Code Coverage Analysis for .NET - http://ncover.org
Copyright (c) 2004-2006 Peter Waldschmidt
Command: C:\Program Files\TestDriven.NET 3\ProcessInvocation86.exe
Command Args: "/assemblyName:TestDriven.TestRunner.Server, Version=3.2.2770.0, Culture=neutral, PublicKeyToken=50ecb853f8c6b8d2" "/xmlName:M:TestDriven.TestRunner.Coverage.NCoverCoverageTestRunner.OutOfProc.Run(System.String,System.String,System.String,System.String,System.String)" "/parameter:tcp://127.0.0.1:64445/7dbdb535-3602-4a8e-8bbc-f8be7eb83987" "/parameter:tcp://127.0.0.1:64445/fbff4f73-2438-43e4-b1f9-2bdaeb9c0907" "/parameter:C:\Users\Zian\Documents\Visual Studio 2010\Projects\ClassLibrary1\TestProject1\bin\Debug\TestProject1.dll" "/parameter" "/parameter"
Working Directory:
Assemblies: ClassLibrary1;ClassLibrary1_Accessor;TestProject1
Coverage Xml: C:\Users\Zian\AppData\Local\Temp\Mutant Design\TestDriven.NET 2.0\Coverage\ClassLibrary1\TestProject1.xml
Coverage Log: Coverage.Log
Waiting for profiled application to connect...Connected
Configuring Profiler...
******************* Program Output *******************
Unable to establish communications with the profiler. (0x2)
NCover couldn't create a coverage report.
2 ответа
- Удалить бета-версию TestDriven.net
- Установите RTM-версию TestDriven.net
Эти 2 шага работают, потому что профилировщик NCover не зарегистрирован должным образом, как описано KiwiDude.
(Предполагается, что вы используете NCover 1.5.8, который поставляется с TDD.Net)
Я сделал именно то, что вы описали, и это прекрасно работает... Вот несколько вещей, которые следует учитывать:
- Вы уверены, что фактический XML-файл пуст? Попробуйте найти это здесь:
C:\Users\USERNAME\AppData\Local\Temp\Mutant Design\TestDriven.NET 2.0\Coverage\YOURPROJECT
или используйте что-то вроде Все (отличный бесплатный инструмент поиска), чтобы найтиYourTestProject.xml
, Возможно, есть проблема с GUI NCover. - Были некоторые проблемы с интеграцией MSTest и NCover до 1.5.8. Попытайтесь воспроизвести это с помощью NUnit и посмотрите, что произойдет (на самом деле имхо, я все равно не вижу никакого преимущества для MSTest перед NUnit).
- Вы используете какой-либо другой профилировщик в дополнение к NCover? Это так, попробуйте отключить их.
РЕДАКТИРОВАТЬ: попробуйте выполнить действия, описанные в этой статье. Есть раздел под названием "NCover With TestDriven.NET".
Кажется, что профилировщик NCover не зарегистрирован должным образом, поэтому в основном вам нужно полностью удалить его вручную (TDD.Net, вероятно, не сделает этого за вас), и только затем переустановить.