VSの "SpecFlowTests"プロジェクトでいくつかのSpecFlowテストを実行しており、テストデータファイルが必要です。私は.testsettingsファイルを使ってファイルを展開していました。ただし、新しいMsTestエージェントは.testsettingsをサポートしていないため、ファイルを展開するための別のソリューションを見つける必要があります。VSTest - SpecFlowテスト用のテストデータファイルがTestResultsにデプロイされない
テストデータファイルには、 "Copy to Output Directory"が "Copy Always"に設定されています。これらは、出力ディレクトリにコピーされ、私は次のように出力ディレクトリを取得することにより、コードでそれらを参照することができます。
public static string AssemblyLocation()
{
var assembly = Assembly.GetExecutingAssembly();
var codebase = new Uri(assembly.CodeBase);
var path = codebase.LocalPath;
return path;
}
ローカルでテストを実行している場合、またはからのビルドの一部としてそれらを実行している場合は、このアプローチは動作しますTFS、それは次の場所にファイルを検索:TFSにおけるリリースの一部としてそれらを実行しようとすると
...\SpecFlowTests\bin\Debug\Helpers\TestDataFile.txt
しかし、それはTestResultsディレクトリのうち、フォルダ内のテスト・データ・ファイルを探し、それを見つけることはできません。
C:\buildagent1\_work\r1\a\TestResults\Out\Helpers\TestDataFile.txt
私は、その後のテストでBeforeFeature法にDeploymentItem属性を設定しようとしたが、それが動作しないように見える、それはTestResultsでアウトフォルダにテスト・データ・ファイルを展開する必要がありますが、それがありませんない。
私は3つの状況(テストをローカルで実行し、TFSビルドから実行し、TFSリリースから実行する)で動作する共通のソリューションが必要です。
私はこれで比較的新しいので、アドバイスをいただければ幸いです。
ありがとうございます!
どのバージョンのTFSを使用しますか?どのようにあなたはリリースでそれらを実行しましたか?ビルド定義を成果物として設定するだけですか? TFS 2017では、ソース(リポジトリ)をリリースのアーティファクトソースとして直接設定し、それが機能するかどうかを確認することができます。 –
TFS 2017.Yes、リリース定義には、アーティファクトソースとして2つのビルド定義があります。ビルド定義には、エージェントでSpecFlowテストを実行するタスクを含む環境が含まれています。ただし、テストの実行時には、データはC:\ buildagent1 \ _work \ r1 \ a \ TestResults \ Deploy_SerTFSBUILD 2017-09-04 20_01_06 \ Out \ Hekpers \ TestDataFile.txt'にありますが、そこには何も配置されていません。 "ファイルのコピー"タスクを追加しようとしましたテストを実行する前に "TestResults \ Deploy_SerTFSBUILD .."フォルダが作成されているため、ターゲットフォルダとして選択するものがわからない – cristina
".testsettings"ファイルを使用できるときは、どのファイルを展開する必要があり、テストが実行されると、ファイルはこの "TestResults \ Deploy ... \ out"フォルダに自動的に展開されました。 – cristina