有没有办法让Visual Studio 2010在同一个线程上运行所有测试?

时间:2011-10-03 14:41:11

标签: .net visual-studio unit-testing com clr

即使Visual Studio 2010不在多个并行线程中运行测试,它仍然使用不同的线程来运行不同的测试方法。它使用一个线程运行一个测试,然后切换到其他线程以运行其他测试。它为每种测试方法继续在线程之间切换。您可以通过在不同的测试中查询线程ID来轻松测试它。

我正在尝试编写初始化使用COM对象的实际应用程序的集成测试。这些COM对象必须仅在STA内存模型中使用,并且没有可用于从其他线程调用它们的代理/存根封送程序。

应用程序的COM对象在第一次测试的第一次测试期间初始化。然后从其他测试对它们的任何调用都会失败,因为它们是从不同的线程调用它们。它抛出InvalidComObjectException,其中“无法使用与其基础RCW分离的COM对象”,因为它无法访问其他STA公寓中的COM对象,并且没有代理/存根封送器。

使Visual Studio在同一个线程上运行所有测试将解决问题,因为所有COM对象都将在同一个STA公寓内的同一个线程上进行初始化和使用。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用NUnit进行此特定测试,因为does run all tests on the same thread