我想用来自 NUnit 测试的文本填充 Forms.Clipboard。
我遇到的第一个问题是剪贴板必须在STA模式下使用。我找到了 the solution (NUnit 2.5.x+) 在方法上设置 RequiresSTA 属性。
接下来我在调用 Clipboard.SetText() 时得到一个 ExternalException。我找到了 the solution使用 Clipboard.SetDataObject(object, bool, int, int) ,您可以在其中指定 retryTimes 以多次尝试设置剪贴板。这个 hacky 解决方案有时有效,这显然不够好(增加 retryTimes 参数当然也会增加成功的机会)。
其他人(例如 Peter)已经成功了,所以这可能与我的环境有关:我在 Windows 7 64 位目标 .NET 3.5 和 x86 下运行 VS2010。 NUnit 版本为 2.5.9。
我卡住了。任何帮助将不胜感激。
最佳答案
回答我自己的问题:
正如 Hans Passant 在评论中所建议的那样,问题在于另一个进程正在干扰。邪恶进程似乎是谷歌浏览器。
关于c# - 无法在单元测试中设置 WinForms 剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6306212/