Я обнаружил объяснимое (но разочаровывающее) поведение при работе с Moles и MsTest.
Представьте себе следующий случай:
- "Test DLL A" использует Moles на mscorlib
- "Test DLL B" использует Moles на mscorlib
Чтобы сократить время компиляции, в обоих случаях мы редактируем файлы .moles, чтобы запросить генерацию родинок для одного класса.
Когда мы это сделаем, наши проекты будут прекрасно компилироваться.
Но когда мы запустим тест нашего решения, процесс MsTest будет:
- Скопируйте все библиотеки DLL в папку «Out»
- Запустить тесты в папке «Out»
Как следствие, при копировании в папку «Out» будет пытаться скопировать две версии mscorlib.Moles.dll (одну с типом 1, а другую с типом 2) и, конечно, вторая перезапишет первую один.
И поэтому мой тест "Test DLL A" не пройден, потому что моя сборка родинок неверна.
Есть, конечно, два простых обходных пути:
- либо включите все необходимые типы (во всех проектах) в каждый файл .moles
- либо не использовать фильтрацию типов
Вы когда-нибудь сталкивались также с этой "проблемой"? есть ли другое решение?
Большое спасибо!
Пьер-Эммануэль
Руководитель группы пользователей DotNetHub