1

ReSharper を使用するなど、テストを並行して実行するように構成する場合、特定の単体テスト クラスを連続して実行するようにフラグを立てる方法はないようです。

これを必要とするクラスの例は、個々のテストの前に (データベースまたはファイル構造から) データを削除/再作成するクラスです。

並列テストの実行が開始されると、すべてのテストがいつでも MyTestInitialize() にヒットする可能性があり、さまざまな条件をアサートしている最中に他のテストが混乱する可能性があります。

4

2 に答える 2

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
于 2013-05-02T23:29:23.397 に答える