我刚刚更新到Visual 2013、ReSharper 8.0.2和mspec的最新版本。
它运行良好,运行了所有单元测试,有些测试正在创建需要为STAThread的UI控件。不要问我为什么有些测试是那样的,它不能分开。我希望这场比赛不会太晚。当我更新的时候,我不知道线程会成为MTA的原因。
我可以轻松地解决这个问题,通过对每个调用(如果是STA )进行检查来通过测试,如果不是什么都不做,但这是行不通的,有些测试需要线程是STA。我还尝试在调用的方法上添加STAThread,但仍然不缺少。
MSpec说他们没有类似于NUnit RequiresSTA那样的属性。我不确定是MSpec线程还是ReSharpers线程导致了MTA。
编辑:相似,但答案没有解决问题。
为什么我得到一个无效的操作异常(非STA线程?)在MSpec上运行这个TeamCity测试?
编辑2:使用更新的mspec库隔离问题,并在VS 2012中运行单元测试,它工作良好,线程的ApartmentState是STAThread。因此,我现在的结论是,它与ReSharper 8.x在MTA中具有线程池启动线程有关。有人知道如何配置ApartmentState吗?
发布于 2014-04-23 17:33:24
这是MSpec设计的,这是因为ReSharper's Runner发生了变化。
更多信息可以找到这里
https://stackoverflow.com/questions/19469453
复制相似问题