无法在单元测试中设置WinForms剪贴板
本文关键字:设置 WinForms 剪贴板 单元测试 | 更新日期: 2023-09-27 17:58:56
我想用NUnit测试中的文本填充Forms.Clipboard。
我遇到的第一个问题是剪贴板必须在STA模式下使用。我找到了在方法上设置RequiresSTA属性的解决方案(NUnit 2.5.x+)。
接下来,我在调用Clipboard.SetText()时遇到ExternalException。我找到了使用Clipboard.SetDataObject(object,bool,int,int)的解决方案,您可以在其中指定retryTimes来多次尝试设置剪贴板。这种破解解决方案有时有效,这显然不够好(增加retryTimes参数当然也会增加成功的机会)。
其他人(例如Peter)已经成功地做到了这一点,所以这可能与我的环境有关:我在Windows7 64位下运行VS2010,目标是.NET 3.5和x86。NUnit版本为2.5.9。
我被卡住了。如有任何帮助,我们将不胜感激。
回答我自己的问题:
正如Hans Passant在评论中指出的那样,问题是另一个过程正在干扰。邪恶的过程似乎是谷歌浏览器。