воскресенье, 6 марта 2011 г.

MonoDevelop + NUnit (Fedora 14)

Согласно информации с официального сайта MonoDevelop (http://monodevelop.com/Download/What%27s_new_in_MonoDevelop_2.4), NUnit интегрирован в IDE.
Вот как это должно выглядеть:





Однако, когда мне понадобилось написать юнит-тесты для своего проекта, никакой интеграции я не обнаружил. Ни в списке "Add-in Manager'а" ни, даже, в "Edit References" диалоге нет и упоминания NUnit.
На моей Fedora 14 установлены:
  • mono-core v.2.6.7-3.fc14 + auto-detected dependencies (incl. mono-nunit, mono-nunit-devel)
  • monodevelop v.2.4-1.fc14 + auto-detected dependencies
Разбираясь с проблемой я обнаружил, что при загрузке
"/usr/lib/monodevelop/AddIns/NUnit/MonoDevelop.NUnit.dll"
MonoDevelop не может найти следующие referenced-библиотеки:
  • nunit.core.dll
  • nunit.core.interfaces
  • nunit.framework.dll
  • nunit.util.dll
несмотря на то, что они зарегистрированы в GAC (/usr/lib/mono/gac/).
Решать проблему использованием мягких или жестких ссылок не хотелось.
Поначалу, я думал, что сборки были как-то криво зарегистированы в GAC и пытался найти решение работая в этом направлении, но никакие попытки перерегистрировать эти библиотеки через gacutil успеха не принесли.

В итоге я сдался и все-таки создал мягкие ссылки рядом с MonoDevelop.NUnit.dll на библиотеки, которые MonoDevelop не мог найти.
ln -s [path to assembly in gac]/nunit.core.dll /usr/lib/monodevelop/AddIns/NUnit/nunit.core.dll

ln -s [path to assembly in gac]/nunit.core.interfaces.dll /usr/lib/monodevelop/AddIns/NUnit/nunit.core.interfaces.dll

ln -s [path to assembly in gac]/nunit.framework.dll /usr/lib/monodevelop/AddIns/NUnit/nunit.framework.dll

ln -s [path to assembly in gac]/nunit.util.dll /usr/lib/monodevelop/AddIns/NUnit/nunit.util.dll
Как я уже упомянул выше, путь к GAC: /usr/lib/mono/gac/
однако ваши пути к GAC и MonoDevelop могут отличаться, например: /usr/local/lib/mono/gac и т.п., в зависимости от того, что и куда вы поставили.

Это полностью решило проблему: появились соответствующие элементы UI и даже nunit сборки в "Edit References" диалоге:




Стоит правда упомянуть, что MonoDevelop все еще использует nunit-2.4.8 в то время как уже выпущена 2.5.9 и по-видимому переход на более новый nunit состоится нескоро и зависит от активности сообщества.

Комментариев нет:

Отправить комментарий