当配置测试并行运行时,例如使用ReSharper,似乎没有办法标记要串行运行的特定单元测试类。
需要此类的类的示例可以是在每次单独测试之前(从数据库或文件结构)删除/重新创建数据的类。
如果并行测试运行开始,它们都可以在任何时候点击MyTestInitialize(),这会导致处于断言各种条件的其他测试的混乱。
答案 0 :(得分:0)
Visual Studio 2010中的一个好方法似乎是创建一个具有单个共享对象的类,然后可以在调用MyTestIntialize()时锁定它,并在调用MyTestCleapup()时解锁。
例如
' Prevent resharper running tests in parallel
Public Class SingleProcess
Public Shared Lock As New Object
End Class
'.....
<TestClass()> _
Public Class MyTestClass
<TestInitialize()> _
Public Sub MyTestInitialize()
Threading.Monitor.Enter(SingleProcess.Lock)
' Do initialize stuff
End Sub
'
<TestCleanup()> _
Public Sub MyTestCleanup()
' Release lock
Threading.Monitor.Exit(SingleProcess.Lock)
End Sub
答案 1 :(得分:0)