リポジトリの動作を検証するための統合テストを作成しています。私が遭遇した問題は、すべてのテストでクリーンなデータベースから始めたいということです。私は次のようにSetUpを書くことによってそれを行うことができました:
[SetUp]
public void SetUp()
{
_applicationContext = new TestApplicationContext();
_applicationContext.Database.Connection.Close();
_applicationContext.Database.Delete();
_applicationContext.Database.Create();
_tenantRepository = new TenantRepository(_applicationContext);
_userRepository = new UserRepository(_applicationContext);
}
はTestApplicationContext
データベース名をに設定しますTestDatabase
。
テストの結果について実際のデータベースを確認するまで、これは正常に機能します。次に、MSSQLサーバーから同じデータベースに接続します。このデータベースは、次のいずれかになるまで閉じられません。
- MSSQLサーバーをシャットダウンします
- 「すべての接続を閉じる」オプションを使用してデータベースを削除します
私が見つけた唯一の方法は、SQLコマンドを使用することです。MSSQLに関するn00bの知識が原因かもしれませんが、「接続を閉じる」ボタン/オプションを期待していました。
MSSQLサーバーからデータベースへの接続を閉じるにはどうすればよいですか?または、C#からプログラムでこれを行う方法はありますか?
アップデート:
多分私はあまり明確ではありませんでした。しかし、MSSQLを開いてテーブルの内容を表示した後、テストSetUpは失敗します。これは、MSSQLもTestDatabaseへの接続を作成し、統合テストでその接続を閉じることができないためです。そのため、MSSQLサーバーから作成した接続を閉じることができるソリューションを探しています。