xunit.net autorollbackおよびマルチスレッドを使用します
-
30-10-2019 - |
質問
Xunit.netとXunit Extensionsによって提供される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属性のためにトランザクションを開始し、データを挿入している間、最後にロールバックのテーブルをロックすることです。テストケースによって生まれた新しいスレッドは、親スレッドによってロックされているため、同じテーブルからデータを読み取ることができません。ただし、同じスレッドでデータを読むことができます。
誰かが解決策を持っていますか?上記のデータを読んで複数のスレッドを実行したい。
正しい解決策はありません
所属していません StackOverflow