VS2005:単体テストでテストデータが必要な場合2
この文書はVisual Studio 2005 TSかTE for SD(.NET 2.0)をベースに記述されています 。
単体テストを行う場合にもろもろの設定ファイル等が必要になる場合があります。その2
毎回必要なファイルなどの場合にはその1を参照してください。
テストごとにテストデータを持ったファイルを突っ込みたい場合があります。
コードの中でコピーしてきてもいいのですが、もっと簡単にテストデータを持っていきたい場合にはどうすればいいでしょうか。
テストビューの該当テストを選択します
そのプロパティを表示します。
配置アイテムのメンテナンスを行います。
そうすると
このようにDeploymentItem属性に設定されます。
それではテストを実行してみましょう。
あえなく失敗してしまったようです。ファイルはコピーされているかフォルダを確認します。
ファイルがコピーされていないようです。
どうしてでしょうか?
それは基準ディレクトリがプロジェクトのトップではなく、実行時フォルダにあるからです。
では相対パスで書きましょう。
[DeploymentItem(@"..\..\IO\ExcelCSV.csv"), TestMethod()]
これで成功です。
ばっちりコピーされていますね。
とはいえ、同じフォルダにいっぱい作られてしまっても困ります。
[DeploymentItem(@"..\..\IO\ExcelCSV.csv", "IO"), TestMethod()]
このように2つ目のパラメータにコピー先のフォルダ名を指定すると
このようにフォルダを作ってくれます。便利ですね。
#でもこのパスの指定不便なので、解決策が有りそうだし調査は続行します。