通常のアプリケーションプロジェクトの場合と同様に、MS Testsプロジェクトの作業ディレクトリを設定するにはどうすればよいですか?テストされる私のコンポーネントは、他のアプリケーションでも使用されているいくつかの構成ファイルにアクセスする必要があります。これまでのところ、これらのファイルは作業ディレクトリにあると想定されているため、テストプロジェクトのbin/debugフォルダーにこれらのファイルをコピーする必要があります。
テストプロジェクトの作業ディレクトリを設定することは可能ですか?
Visual Studio 2012を使用している場合、テストプロジェクトの出力ディレクトリを[プロパティ] | [ビルド] | [出力パス]に設定すると、Visual Studioからテストを実行するときに作業ディレクトリになります(Vstest.console.exeを使用しているため)。 。テストdllなどを他のファイルと同じディレクトリに出力したくない場合や、他のファイルをテストプロジェクトのコンテンツとして使用したくない場合(Schaliasosの提案による)、次のように設定できます。 [AssemblyInitialize]属性を持つメソッドの起動時のパス。これを行うには、通常どおりSystem.Environment.CurrentDirectoryを割り当てます。作業ディレクトリを設定として使用するか、構成ファイルから読み取ることをお勧めします。
編集
Rohit.Netが指摘しているように、Run All Tests
を選択すると、デフォルトのパスはTestResultsの下になります。 runsettings
ファイルを使用する場合も同様です。 DeploymentItemsを使用していない場合、出力フォルダーがデフォルトの作業ディレクトリになります。
テストプロジェクトの作業ディレクトリは、テストの実行を開始したときに作成されます。
それらをローカルで実行する場合、これはプロジェクトフォルダー内のフォルダーTestResults
に作成されます。それらをリモートマシンで実行すると、次のパスの各テストエージェントに異なるフォルダーが作成されます。
C:\ Users {userRunsTheTest}\AppData\Local\VSEQT\QTAgent\{GuidForThisRun}
ファイルをこれらのフォルダーに展開してアクセスできるようにするには、次のことを行う必要があります。
Copy to Output Directory = Copy Always
Visual Studio2012のテストエクスプローラーからRun All tests
を選択すると、Acarlonの提案は機能しません。
取得するデフォルトのパスは、...\TestResults\Deploy_<YourName>2014-01-13 14_48_20\Out
フォルダーのようなものです。
このため、エンティティがエンティティ関連のテストを実行するために接続を開こうとすると、DBにアクセスできない可能性があります。
私の場合、リソースファイルとして設定され、常にコンパイルされてBin/Debug/Resource
フォルダーにドロップされるSQLCEを使用しています。