Невозможно установить буфер обмена WinForms в модульном тесте - PullRequest
4 голосов
/ 10 июня 2011

Я бы хотел заполнить Forms.Clipboard текстом из теста NUnit.

Первая проблема, с которой я столкнулся, заключалась в том, что буфер обмена должен использоваться в режиме STA.Я нашел решение (NUnit 2.5.x +) для установки атрибута RequSTSTA для метода.

Затем я получаю исключение ExternalException при вызове Clipboard.SetText ().Я нашел решение для использования Clipboard.SetDataObject (object, bool, int, int), где вы можете указать retryTimes, чтобы сделать несколько попыток установить буфер обмена.Это хакерское решение работает иногда , что, очевидно, недостаточно хорошо (увеличение параметра retryTimes, конечно, также увеличит вероятность успеха).

Другие (например, Питер *)1014 *) это удалось, поэтому, возможно, это как-то связано с моей средой: я запускаю VS2010 под 64-битной Windows 7 с таргетингом на .NET 3.5 и x86.Версия NUnit 2.5.9.

Я застрял.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 13 июня 2011

Отвечая на мой вопрос:

Как предложил Ханс Пассант в комментариях, проблема заключалась в том, что мешал другой процесс. Злой процесс, похоже, Google Chrome.

...