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