Модульные тесты и проблемы Test Runner в .Net 4.0 - PullRequest
2 голосов
/ 18 июня 2010

Мы пытаемся перенести решение .Net 3.5 в .Net 4.0, но испытываем сложности с инфраструктурой тестирования, которая может работать с использованием сборки, построенной с использованием версии 4.0 .Net Framework.

Ранее мы использовали NUnit 2.4.3.0 и NCover 1.5.8.0 в наших сценариях NAnt, но NUnit 2.4.3.0 не любит проекты .Net 4.0.Итак, мы обновили до новой версии инфраструктуры NUnit в самом тестовом проекте, но затем обнаружили, что NCover 1.5.8.0 не поддерживает эту версию NUnit.

В коде появляются ошибки, произносящие словаЭффект сборки был создан с использованием более новой версии .Net Framework, чем используется в настоящее время, так как он использует .Net Framework 2.0 для запуска инструментов.

Затем мы попытались использовать графический интерфейс Gallio Icarus для запуска тестов,но обнаружил, что этот и MbUnit поддерживают только до версии 3.5 .Net Frameword, и в результате получается, что «тесты будут игнорироваться».

С точки зрения охвата (для отчетности в CruiseControl.net), мы обнаружили, что PartCover является хорошим кандидатом для замены NCover (поскольку более новая версия NCover довольно дорогая, а PartCover бесплатна), но это еще несколько шагов вперед, так как мы не можемзаставьте участников тестов работать в первую очередь !!

Может ли кто-нибудь пролить свет на среду тестирования, которая будет работать под .Net 4.0 вкак я описал выше?Если нет, я боюсь, что нам, возможно, придется вернуться к использованию .Net 3.5, пока производители инструментов, которые мы используем в настоящее время, не получат возможность обновить до .Net 4.0.

Спасибо.

1 Ответ

0 голосов
/ 23 июня 2010

Правильно - вроде как исправил это сам.Вот как, в случае, если у кого-то еще есть такая же проблема.

NUnit 2.5.5 теперь отсутствует , и это поддерживает сборку проектов с использованием .Net Framework v4.0, но вы должны использовать дополнительный параметр , а именно / framework = 4.0.30319 , который выглядит примерно так при использовании в NAnt через NCover:

<exec program="C:\Program Files\TestDriven.NET 2.0\NCover\1.5.8\NCover.Console.exe">
 <arg value="&quot;C:\Program Files\NUnit 2.5.5\bin\net-2.0\nunit-console.exe&quot;"/>
 <arg value="&quot;bin/release/myProject.Test.dll&quot; /framework=4.0.30319"/>
 <arg value="/xml"/>
 <arg value="bin/release/myProject.Test-dll-results.xml"/>
 <arg value="//x"/>
 <arg value="bin/release/myProject.Test-dll-coverage-results.xml"/>
 <arg value="//q"/>
 <arg value="//a"/>
 <arg value="myProject.Test"/>
</exec> 

С обновлением только NUnit до2.5.5 (также с добавлением этого флага) теперь это работает с очень небольшими изменениями в сценариях сборки, что хорошо.

Итак, в итоге:

Мой сценарий NAnt вызываетNCover 1.5.8 и вызывает NUnit 2.5.5, который проверяет мою сборку модульного теста .dll, которая была построена с использованием .Net 4.0.NUnit генерирует первый выходной файл (bin / release / myProject.Test-dll-results.xml), который затем выбирается NCover и обрабатывается во втором выходном файле результатов (bin / release / myProject.Test-dll-покрытие-results.xml), который затем может быть просто включен в файл Cruise Control ccnet.config для его автоматического включения в веб-панель управления после каждой сборки.

Simple.Надеюсь, это поможет кому-то еще!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...