Как я добираюсь, stdout в mstest производят при выполнении в новом домене приложения?

Я работал над средой тестирования, которая создает новый домен приложения для запущения тестов в. Так как основная причина является dll's, который мы тестируем, имеет некоторый ужасный код, который полагается на dll, располагаемый в пути домена приложения. (Не я не могу изменить этот код.)

Проблема, которую я имею, состоит в том, что моя тестовая команда пишет набор функциональных испытаний в mstest и одном из регистраторов, что записи к Консоли. Не имеет ни одной информации о журнале полученной в выводе trx. При выполнении кода через консольное приложение вся информация о журнале производится прекрасная. Также - другие регистраторы, которые были реализованы.

Моя мысль - то, что mstest устанавливает свой собственный TextWriter на Консоль. Но новый домен приложения имеет свой собственный TextWriter для Консоли. Поскольку новый домен приложения имеет свой собственный набор помех.

Я ценю Ваши идеи.

11
задан btlog 8 March 2010 в 11:10
поделиться

1 ответ

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

Проблема в том, что оригинальный Console.Out устанавливался в новый TextWriter в mstest, и он не устанавливался в домене моего нового приложения.

Поэтому я создал метод SetConsoleOut на классе, который я создал в новом appdomain, и передал ему Console.Out.

TestFramework testFramework = 
          (TestFramework)newAppDomain.CreateInstanceAndUnwrap(
                                                "TestFrameworkLibrary",
                                                "MyNamespace.TestFramework");

testFramework.SetConsoleOut(Console.Out);

И в TestFramework я добавил этот метод

internal void SetConsoleOut(TextWriter consoleOut)
{
    Console.SetOut(consoleOut);
}

Работает как шарм. Я не уверен в этикете здесь. Должен ли я просто удалить вопрос или добавить свой ответ к вопросу?

10
ответ дан 3 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: