2

MsTests 内で、プロジェクト内のファイルにアクセスして使用する必要があります。だから私は Path.GetFullPath(@"......\name_of_file") を使用しています

しかし、ビルドを実行すると、パスのコンテキストが一時ディレクトリ (C:\TeamCity\buildAgent\temp\buildTmp) であるため、すべてのファイルが存在するチェックアウト ディレクトリ (C:\TeamCity\) ではなく、ファイルが見つからないというエラーが発生します。 buildAgent\work\e87255825b2f3eb1)

それを変更する構成はありますか?またはそれを行うより良い方法はありますか?

4

2 に答える 2

2

単体テストを実行するディレクトリを指定するTeamCityオプションが見つかりませんでした。他の誰かがそこで助けることができるかもしれません。

ただし、通常、単体テストに必要なファイルを埋め込みリソースとして含めます。これにより、実行中に、ファイルがどこから実行されていても、ファイルに常にアクセスできることが確実にわかります。Stream埋め込みリソースから簡単に取得できます。ファイル名のみを取得するAPIを使用する必要がある場合は、ファイルをに書き込むことができますPath.GetTempPath()

于 2012-11-17T04:45:14.277 に答える
0

次のようなファイルを参照するようにテストを変更しました。

string currentDir = new System.Diagnostics.StackFrame(true).GetFileName();
var workingFile = new FileInfo(currentDir);
string fileContents = File.ReadAllText(workingFile.Directory + @"\ResourceFolder\MyFile.xml");

これは良い方法ではないことはわかっていますが、ローカルで、TeamCityから呼び出されたときに機能します。

于 2012-11-19T17:28:04.623 に答える