c# - 无法在单元测试中设置 WinForms 剪贴板

标签 c# winforms nunit clipboard sta

我想用来自 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/

相关文章:

c# - 如何为 ComboBox 中的文件列表启用自动完成

unit-testing - MSTest 和 NUnit 相比有哪些优势/劣势?

c# - Entity Framework linq 查询,根据计数从收藏夹的表中获取前 N 个 postID

c# - RestSharp 执行同步,而不是异步

c# - 如何从 ListView 中隐藏复选框

c# - 如何将标签添加到 DataGridView 单元格

unit-testing - 如何对文件管理器类进行单元测试?

nunit - 如何在 VSTS 中使用 NUnit?

c# - 从 Javascript 访问 MVC 的模型属性

java - C# 相当于 Java RSA/ECB/OAEPWithSHA-256AndMGF1Padding