Я тестирую DLL-файлы Debug с NUnit, и очень раздражает то, что при каждом тестировании появляется большое количество утверждений Debug.Закрыть предстоящее Debug Assertion
Так что я написал инструмент, который опрос для нового утверждения Debug. инструмент выполняет итерацию для всех окон каждые миллисекунды и проверяет, является ли заголовок одной из коллекции возможных заголовков окна Debug Assertion.
В псевдокоде это выглядит следующим образом:
void main()
{
var thread = new Thread(ThreadMethod);
thread.Start();
}
private void ThreadMethod()
{
while(true)
{
foreach(var title in possibleWindowTitles)
{
IntPtr windowHandle = FindWindowHandle(title);
if(windowHandle != IntPtr.Zero)
{
SetToForeground(windowHandle);
SendKeys.SendWait("%I);
}
}
}
}
codeline SendKeys.SendWait("%I")
посылает keycombination из ALT + I
к окну, которое является keycombination для «Продолжить».
Мой вопрос:
Есть ли лучший вариант? что-то вроде:
- событие, когда новое окно появляется
- Лучший способ закрытия окна (метод
CloseWindow
изUser32.dll
не не работал для меня - не исключение, но ничего не происходит) - Лучшее решение для решения
SetToForeGround()
- Лучшим способом было бы подавление утверждения - возможно ли это?
Мой способ работает, но я думаю, что мое решение очень подвержено ошибкам. Итак, у меня дыра есть кто-то с хорошей идеей
Я отправлю в качестве ответа на примере. –