説明複数のユニットテストを実行し、同じファイルをコピーすると、すべてのユニットテストが失敗
私はどの宛先にコピー元からファイルをする方法、のユニットテストを書いています。基本的には、このコードは、(test.png
)、私のユニットテストプロジェクトのResources
のフォルダにあります。私のユニットテストプロジェクトで
public void MyMethod()
{
// ...
File.Copy(source, destination, true);
// ...
}
を、私はテストファイルを持っています。そして私はCopy to Output
プロパティをAlways
に設定しました。
私はこの方法をテストしている3つの単体テストを持っています。
ファイルをコピーするコードの行にヒットしたとき:source = "Resources\\test.png"
。
問題は
私は個別にユニットテストを実行し、それらはすべて合格し、すべてが正常です。私は、Visual Studioのすべてのテストを実行すると はしかし、私はこの実行時エラーを取得し、ユニットテストは失敗:
System.IO.DirectoryNotFoundException
パスの一部を見つけることができませんでした「リソース\テスト.png '
私の考えVisual Studioは別のスレッドで同時に各ユニットテストを実行し、それらのすべてが同時に同じファイルにアクセスするため...おそらく
を(更新)?
私はすべての単体テストについて、Visual Studioは
bin/Debug
とbin/Release
のフォルダをクリーニングしていると思います。次に、必要なすべてのプロジェクトファイルをそのフォルダにコピーします。これにより、ファイルが実際に存在しないことがあります。
質問
はどうすればこの問題を解決することができますか?
これを解決する設定はありますか?
複数の単体テストが同じファイルにアクセスしているときに、Visual Studio(およびTeam City)ですべての単体テストを実行するにはどうすればよいですか?
をあなたがそれらの3つのテストの全体のコードを共有することができればそれが役立つかもしれません。 –