Помощь в настройке MSpec

установка: win7 64bit, vs2010, mvc v2, TestDriven.Net 3.0, Reshaper 5.0, MSpec 0.3

Я недавно начал новый проект и хочу использовать mspec.

(1) скопировал Machine.Specifications.ReSharperRunner.5.0.dll и Machine.Specifications.dll в JetBrains \ ReSharper \ 5.0 \ Bin \ Plugins \ Machine.Specifications (2) скопировал Machine.Specifications.TDNetRunner.dll в TestDriven.NET 3 \ Машина.Технические характеристики

когда я пытаюсь запустить тест, я получаю эту ошибку: System.IO.FileNotFoundException: не удалось загрузить файл или сборку Machine.Specifications

я не знаю, откуда взялась эта ошибка.

Меню vs2010 -> ReSharper -> Плагины показывает плагин MSpec. Меню vs2010 -> ReSharper -> Параметры -> Инструменты -> Модульное тестирование также показывает поставщика модульного тестирования MSpec, но не показывает никаких подробностей, когда я нажимаю на него, как это делают MSTest и nUnit.

я нашел это: http://marcinobel.com/index.php/mspec-bdd-installer/, который не работал. я также пробовал это: http://eduncan911.com/blog/registering-mspec-runners-for-testdriven-net-on-windows-x64.aspx, что также не сработало. теперь я боюсь, что испортил свой реестр.

какие-либо указания?

полная ошибка:

Ошибка теста F: Tests.OTBRadio.Tasks.AlbumTasksSpecs.when_the_album_tasks_are_asked_to_get_all.context: не удалось загрузить файл или сборку Machine.Specifications, Version = 0.3.0.0, Culture = нейтральный, PublicKeyToken = null или одну из ее зависимостей. Система не может найти указанный файл. System.IO.FileNotFoundException: не удалось загрузить файл или сборку Machine.Specifications, Version = 0.3.0.0, Culture = нейтральный, PublicKeyToken = null или одну из его зависимостей. Система не может найти указанный файл. Имя файла: 'Machine.Specifications, Version = 0.3.0.0, Culture = нейтральный, PublicKeyToken = null' в Machine.Specifications.TDNetRunner.SpecificationRunner.RunMember (ITestListener testListener, сборка сборки, член MemberInfo) в TestDriven.TestRunner.AdaptorTestRunner.Run (ITestListener testListener, ITraceListener traceListener, String assemblyPath, String testPath) в TestDriven.TestRunner.ThreadTestRunner.Runner.Run ()


person CurlyFro    schedule 06.05.2010    source источник


Ответы (3)


Вам не нужно никуда копировать Machine.Specifications.TDNetRunner.dll, просто поместите его в каталог tools или lib вашего проекта, то есть туда, где вы храните зависимости вашего проекта. Проект, содержащий тесты MSpec, будет ссылаться на Machine.Specifications.dll из этого каталога. TestDriven.Net> = 2.24 сможет подобрать бегун TD.Net, если Machine.Specifications.dll.tdnet находится в том же каталоге. Пример того, как мне нравится организовывать свой tools каталог, можно найти здесь.

Мне нравится ваш каталог плагинов ReSharper 5.0. Однако у меня были пользователи, которые сообщали об этом, когда вы распаковываете zip-файл MSpec (который вы, вероятно, загрузили с http://teamcity.codebetter.com) с помощью проводника Windows помечает извлеченные библиотеки DLL как загружаемые из Интернета.

Не могли бы вы убедиться, что Windows не блокирует библиотеки DLL в <ReSharper 5.0>\bin\plugins, открыв свойства каждой DLL и нажав «Разблокировать» на первой странице свойств. Если кнопка «Разблокировать» не отображается, с вашими файлами все в порядке. В таком случае, разместите здесь сообщение, и мы посмотрим, как мы можем работать с вашим плагином MSpec.

person Alexander Groß    schedule 06.05.2010
comment
у меня есть аналогичный каталог ReferencedAssemeblies для моего проекта. Я сделал все, что вы предложили, но все еще не работает. Я добавил полную ошибку в свое исходное сообщение, так как оно здесь не помещается. - person CurlyFro; 06.05.2010
comment
Не могли бы вы попробовать использовать Process Monitor, чтобы проверить, не удается ли найти Machine.Specifications.dll во время выполнения теста? В качестве другого варианта попробуйте собрать тестовую сборку как x86. Подходит ли вам бегун ReSharper? - person Alexander Groß; 07.05.2010
comment
Я был разочарован и начал новый проект, и он сработал. Спасибо за вашу помощь. - person CurlyFro; 07.05.2010

После изменения любой DLL вы должны очистить проект, чтобы у вас не было ошибок в новом проекте.

person awattar    schedule 18.05.2010

У меня была такая же проблема, и я исправил ее, клонировав копию MSpec с Github (https://github.com/machine/machine.specifications).

Затем в папке «Source» я запустил один из командных файлов (в моем случае build-4.0-debug.cmd), который создал «Machine.Specifications.dll» в «xxx \ Source \ Build \ Debug».

Я удалил ссылки на "старую" dll, очистил свой проект, скопировал поверх старой dll с новой dll, полученной на предыдущем шаге, перестроил, и это помогло.

person DavidS    schedule 02.12.2010