nunit версии 3 не может тестировать код, связанный с динамической генерацией сборок - PullRequest
0 голосов
/ 11 мая 2018

Сценарий: как часть логики, система генерирует динамическую сборку следующим образом.

CompilerParameters cp = new CompilerParameters();

cp.GenerateExecutable = false;
cp.GenerateInMemory = true;

cp.TreatWarningsAsErrors = false;
cp.ReferencedAssemblies.Add("Employee.dll");
cp.ReferencedAssemblies.Add("Person.dll");

CompilerResults cr = provider.CompileAssemblyFromSource(cp, "someCode");
if (cr.Errors.Count > 0)
{..}

Я открываю сборку модульного тестирования в NUnit-Gui-0.6.0 и тестирую метод, который заканчиваетсявызов вышеупомянутого кода как части бизнес-логики.

Проблема: выше счетчика ошибок больше 0 и имеет следующие сообщения:

error CS0006: Metadata file 'Person.dll' could not be found
error CS0006: Metadata file 'Employee.dll' could not be found

Я проверил, что эти сборки присутствуют вкаталог bin вместе с модульным тестом DLL.Этот код работает в обычном рабочем процессе приложения, но не в NUnit 3. *.

Сведения о среде: VS 2017. Unit Test DLL and Application DLLs are full .NET Framework 4.7.1.

Не уверен, что это ошибка в NUnit 3. * или проблема приложения.

С уважением,

Ифтихар.

1 Ответ

0 голосов
/ 11 мая 2018

Какой режим конфигурации вы используете при компиляции проекта модульного теста?Когда вы выбираете режим конфигурации «Debug», файлы dll по умолчанию выводятся в папку bin \ Debug.Поскольку вы сказали, что ваши сборки находятся в папке bin, проверьте, не поместили ли вы вашу сборку в папку bin \ Debug.

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