xUnit.netとxunit拡張機能によって提供されるAutoRollback属性を使用してテストケースを作成しようとしています。
私のテストケースはこのようになります
[Fact, AutoRollback]<br>
public void TestCase()<br>
{
// insert into data table
repository.Insert(data);
// spawn a new thread and read data which you just inserted in the data table
Task.Factory.StartNew(action_to_read_data);
}
このテストケースは失敗し、新しいスレッドのデータの読み取り中に接続タイムアウト例外をスローします。私が見つけた問題は、テストケースがAutoRollback属性のためにトランザクションを開始し、データを挿入している間、最後にロールバックのためにテーブルをロックすることです。テストケースによって生成された新しいスレッドは、親スレッドによってロックされているため、同じテーブルからデータを読み取ることができません。ただし、同じスレッドでデータを読み取ることができます。
誰かが解決策を持っていますか?上に挿入したデータを読み取る複数のスレッドを実行したい。