有没有办法让Visual Studio 2010在同一个线程上运行所有测试?
即使Visual Studio 2010不在多个并行线程中运行测试,它仍然使用不同的线程来运行不同的测试方法。它使用一个线程来运行一个测试,然后切换到其他线程来运行其他测试。它继续在每个测试方法的线程之间切换。您可以通过在不同测试中查询线程ID轻松进行测试。有没有办法让Visual Studio 2010在同一个线程上运行所有测试?
我正在尝试编写初始化使用COM对象的实际应用程序的集成测试。这些COM对象只能在STA内存模型中使用,并且没有可用于从其他线程调用它们的代理/存根封送处理器。
应用程序的COM对象在第一次测试使用的线程的第一次测试期间被初始化。然后,从其他测试对他们的任何调用失败,因为他们从不同的线程调用它们。它会抛出InvalidComObjectException,因为“无法使用与其底层RCW分离的COM对象”,因为它无法到达其他STA公寓内没有代理/存根封送拆分器的COM对象。
使Visual Studio在同一个线程上运行所有测试将解决问题,因为所有COM对象都将在同一个STA公寓内的同一个线程上初始化和使用。
您可以尝试使用NUnit进行此特定测试,因为它的does run all tests on the same thread。
这将是很难做到的,因为我们已经有了一些使用Visual Studio默认框架编写的测试。把它们全部移植到一个新的框架上将会很昂贵。同时使用两个框架的吸引力会更小。 我真的很想找到一个基于Visual Studio原生框架的解决方案。 – Dennis
http://social.msdn.microsoft.com/forums/en-US/vststest/thread/39bb05f0-eee9-4e97-9cdf-ec25356f8834/ –