2009-04-08 27 views
13

ここに問題があります。
1. Visual StudioソリューションでTestProjectを作成します。
2. .testrunco​​nfigファイルを開き、[展開]メニュー項目の[展開を有効にする]チェックボックスをオンにします。
3.「Add Directory ...」ボタンをクリックして、いくつかのファイルを含むフォルダを追加します。
4.テストプロジェクトを実行します(ダミーテストを使用します)。Visual Studioテストプロジェクト - 展開時にフォルダをコピーしません。

これで、TestResultsフォルダを確認します。すべてのファイルが直接(最上位に)コピーされていることがわかります。フォルダ自体はコピーされていません。これはテスト中に私のパスを駄目にする。誰かが下にあるファイルの代わりにフォルダをコピーする方法を教えてもらえますか?

ありがとうございました。

+0

私はちょうど言ったように、テスト設定で「展開を有効にする」チェックボックスをオフにして、新しいディレクトリの作成を停止し、代わりに既存のbin \ Debugディレクトリを使用します。はるかに良いとバギー! –

答えて

17

これを使用するテストクラスで[DeploymentItem]属性を使用します。あなたはディレクトリを指定することができます。

[TestClass] 
[DeploymentItem("blahblah\\myDirectory", "myDirectory")] 
public class MyTest 
{ 

} 

注:テストを開始するとき

  • DeploymentItemが非常に遅いです。それは1秒あたり2ファイルをコピーするようです。
  • テスト基本クラスに属性を指定できます。しかし、複数のテストプロジェクトがある場合は、必ずしも機能しません。
  • おそらく、[AssemblyInitialize]とマークされたメソッドを持つTestClassで指定できます。その後、一度だけそれを提供する必要があります。わからない、試してみる必要があります。
  • ソースディレクトリはソリューションの場所からの相対パスです。これはほとんど文書化されていません。
+2

Hmm。これには、.testrunco​​nfigファイルではなく、テストフィクスチャクラス内でのハードコーディングが必要です。私は 'Enable Deployment'をチェックしないように設定し、すべてのデータファイルを 'Copy Always'に設定したbin \ Debugフォルダ内のすべてを実行しています。仕事をしますか? 情報をありがとう! – DeeStackOverflow

+2

「展開」をオフにするのは簡単です。しかし、古いビルドのbin \ debugにあるファイルを持つリスクを考慮する必要があります。あなたのテストはマシン上でのみ実行/失敗する可能性があります。だから、毎回テストを実行する前にbin \ debugをクリーンアップしてください。 –

+0

この投稿はただ私を救った。ありがとう! – Jeremiah

0

もう1つのオプションは元のフォルダの下に別のフォルダを作成してから、そのフォルダをoutディレクトリに展開することです。

TestFolder/

TestFolder/TestDeployment/

そしてtestrunco​​nfigにあなたはまだTestFolderフォルダとTestDeploymentフォルダが出たディレクトリに展開されます選択

:たとえば、あなたは、このような構造を持つことができます。

10

メモ帳で.testsettingsファイルを開きます。さて、あなたはすべてのフォルダが

私は今日もこの問題を抱え
<DeploymentItem filename="FolderName\" outputDirectory="FolderName\" /> 
+1

これは私が必要としたものです。ありがとうございます。 Visual Studioを再起動して有効にする必要がありました。 – Ciaran

+0

上記の回答のバリエーション。私はファイル名= "フォルダ名\サブフォルダ名"に変換する必要がありましたが、正しく動作させるためには "サブフォルダ名\" outputDirectory = "サブフォルダ名"となりました –

+0

ありがとうございます。 VS2013でも同様のハッキングが必要です。なぜ私はoutputDirectoryを指定するテキストエディタを使用する必要があるのだろうか! Microsoftは、testsettingsの編集ダイアログを修正する必要があります。受け入れられた答えが気に入らなかった、これはもっときれいです。 –

0

<DeploymentItem filename="FolderName\" /> 

変更これをコピーするためにことがわかります。私は、 "deployment_files"というフォルダを必要なフォルダを含むプロジェクトに追加することでそれを解決しました。次に、必要なフォルダを「deployment_files」フォルダに配置します。次に、ソリューションエクスプローラの[ソリューションアイテム]フォルダの下にLocalTestRun.testrunco​​nfigファイルを開きました。 testrunco​​nfigプロパティウィンドウの "Deployment"パネルに行きました。 "deployment_files"ディレクトリをデプロイメントとvoilaに追加しました。その中のフォルダがテスト結果のOutフォルダにコピーされました。

関連する問題