Подтвердить что ты не робот

Переадресовывает ли привязка сборки для модульного тестирования с помощью тестового бегуна?

Итак, вот полное описание проблемы, которую я имею:

Я пытаюсь использовать NUnit ExtensionMethods, но всякий раз, когда я запускаю тест, содержащий один из методов расширения, используя TestDriven.Net, или если я просто плоский попробуйте загрузить сборку с помощью графического интерфейса для тестирования (Icarus или NUnit). Я получаю исключение FileNotFoundException.

Устремляя голову к стене и копая дальше, я думаю, что знаю, что случилось. Cue рефлектор и yep, я вижу, что NUnit.Framework > ExtensionMethods.dll имеет ссылку на

nunit.framework, Version=2.4.6.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77

и моя текущая версия nunit, в которую я включаю,

nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77

Теперь я никогда раньше не использовал перенаправление сборки, но похоже, что было бы просто добавить App.Config со следующими строками:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <assemblyBinding  xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity
                    name="nunit.framework.dll"
                    publicKeyToken="96d09a1eb7f44a77" />
                <bindingRedirect oldVersion="2.4.6.0" newVersion="2.4.8.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

и я понимаю, что обращения к версии 2.4.6 (которая не существует на этом компьютере) должны автоматически перенаправляться на версию 2.4.8.

Однако это не работает, и я подозреваю (но еще не подтвердил), что это связано с тем, что тестовые участники не автоматически считывают файлы app.config.

Итак, мой вопрос таков:

  • Я прав в своем диагнозе проблема?

  • Переадресация сборки   подходящее решение, и я   это правильно?

  • Как мне заставить это работать с тест-бегун?

4b9b3361

Ответ 1

Это должно работать, если вы установите параметры конфигурации в правильный файл .config. Какой из них зависит от среды, которую вы используете для запуска тестов, но оба NUnit и TestDriven.NET должны поддерживать использование testassembly.dll.config.
Что касается этого подходящего решения, я бы сказал "да". Единственная другая возможность - использовать файл политики издателя, но вам понадобится секретный ключ, используемый для компиляции NUnit.