ローカルデータベースを利用するテストプロジェクトを使って開発しているのですが、たまにローカルデータベースのファイルが別のプロセスで使用されていて、テスト実行に失敗します。
急に発生してびっくりするので、後ですぐに分かるようにメモしておきます。
環境:Visual Studio 2013 + NUnit。Visual Studio上のテストエクスプローラーでNUnitテストを実行するように設定しています。
エラーメッセージはこんな感じ。
「~.mdf(.ldf)を<binフォルダパス>にコピーできません。別のプロセスで使用されているため、プロセスはファイルにアクセスできません。」
「~.mdf(.ldf)を<binフォルダパス>にコピーできませんでした。10回の再試行回数を超えたため、失敗しました。」
これが出るとテストを再実行してもうまくいかない。
解決策は、エラーメッセージからわかるとおりデータベースファイルを掴んでいるプロセスを終了する。
私の環境では、タスクマネージャーを立ち上げ、「SQL Server Windows NT – 64bit」というプロセスをを選んで、「タスクの終了」してから、再度テストを実行することで解決します。
前回実行時に立ち上げたローカルデータベースを動かすSQL Serverプロセスがうまく終了しなかったということでしょうね。