【发布时间】:2013-10-28 11:10:18
【问题描述】:
我刚刚更新到 Visual Studio 2013、ReSharper 8.0.2 和 mspec 到最新版本。
运行所有单元测试工作正常,其中一些测试正在创建需要 STAThread 的 UI 控件。不要问我为什么有些测试是这样的,不能分开。我希望这场比赛还不算太晚。我不知道这次更新时可能导致线程成为 MTA 的原因。
我可以通过检查每个调用是否是 STA 来轻松快速解决此问题以通过测试,如果不是什么也不做,但那不起作用,某些测试需要线程是 STA。我还尝试在调用的方法上添加[STAThread],但仍然没有。
MSpec 说他们没有类似 NUnit [RequiresSTA] 的属性。我不确定是 MSpec 还是 ReSharpers 线程导致它成为 MTA。
编辑:类似但答案没有解决问题
Why do I get an Invalid Operation Exception (non STA thread?) running this MSpec test on TeamCity?
编辑 2:使用更新的 mspec 库隔离问题并在 VS 2012 中运行单元测试,它工作正常,线程的 ApartmentState 是 STAThread。所以我现在得出结论,这与 ReSharper 8.x 在 MTA 中的线程池启动线程有关。有谁知道如何配置 ApartmentState?
【问题讨论】: