如何在STAThread模式下使用resharper runner运行mspec

时间:2013-10-19 18:21:21

标签: c# resharper mspec

我刚刚更新到Visual Studio 2013,ReSharper 8.0.2和mspec到最新版本。

运行所有单元测试工作正常,一些测试正在创建需要STAThread的UI控件。不要问我为什么有些测试是这样的,不能分开。我希望如果这场比赛还为时不晚。我更新时,我不知道什么原因导致线程成为MTA。

我可以轻松快速解决这个问题,通过检查EACH调用来传递测试,如果它是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?

1 个答案:

答案 0 :(得分:0)

这是MSpec设计的,因为ReSharper's Runner发生了变化。

可以找到更多信息here