Я записал набор модульных тестов в VS2010 Express и тестах, являющихся тестами, которые они иногда проваливают. Так как специальные выпуски VS не позволяют плагинам работать, я не могу просто вращать TestDriven. Сеть или эквивалент и отладка тесты. Чтобы попытаться работать вокруг этого, я преобразовал свою опытную сборку в консольное приложение и заставил основной метод быть похожим на это:
class CrappyHackToDebugUnitTestInVSExpress
{
public static void Main()
{
AppDomain.CurrentDomain.ExecuteAssemblyByName(
@"C:\Program Files\NUnit 2.5.5\bin\net-2.0\nunit-console.exe",
new [] { Assembly.GetExecutingAssembly().Location, "/framework:4.0" });
}
}
В теории я должен смочь увеличить это, установить точки останова в моем тесте. Если бы это работало, то это была бы приемлемая работа вокруг, но я продолжаю получать следующее:
FileLoadException
Could not load file or assembly 'C:\\Program Files\\NUnit 2.5.5\\bin\\net-2.0\\nunit-console.exe'
or one of its dependencies. The given assembly name or codebase was invalid.
(Exception from HRESULT: 0x80131047)
Теперь файл существует, и, когда выполнено вручную nunit-консоль хорошо работает. Какова могла бы быть моя проблема?
Я поиграл с вашей концепцией, и оказалось, что проблема не непосредственно в загрузке файла, а в зависимостях.
Я использовал следующий измененный код:
И на самом деле ошибка заключалась в невозможности найти файл nunit.core.dll, который находится в каталоге / lib.
try
{
String NUnitPath = @"C:\Program Files\NUnit 2.5.7\bin\net-2.0\nunit-console.exe";
AssemblyName asmName = System.Reflection.AssemblyName.GetAssemblyName(NUnitPath);
AppDomain.CurrentDomain.ExecuteAssemblyByName(asmName, new[] { Assembly.GetExecutingAssembly().Location, "/framework:4.0" });
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
Trace.WriteLine(ex.StackTrace);
}
(Мне нравится получать System.Reflection.AssemblyName, потому что вы можете проверить и увидеть, что все в порядке по необработанному пути к файлу.)
Быстрая массовая копия (xcopy nunit. *. Dll) в отладку моих тестовых проектов каталог, и он работал нормально. (Выявление минимальных требуемых зависимостей должно быть тривиальным делом)
Протестировано в VC # 2010 Express с NUnit 2.5.7 (точки останова работают, но я не особо играл с другими параметрами.) Хотя я уверен, что вы могли бы сделать из него сносный вариант сборки.
Ура!
PS - Первый пост здесь, так что я немного непроверен относительно форматирования блоков «кода». Заранее извините ..