VS の「SpecFlowTests」プロジェクトで実行する SpecFlow テストがいくつかあり、テスト データ ファイルが必要です。私は .testsettings ファイルを使用してファイルをデプロイしましたが、うまくいきました。ただし、新しい MsTest エージェントは .testsettings をサポートしなくなったため、ファイルをデプロイする別のソリューションを見つける必要があります。
テスト データ ファイルでは、[出力ディレクトリにコピー] が [常にコピー] に設定されています。これらは出力ディレクトリにコピーされ、次の方法で出力ディレクトリを取得することにより、コードでそれらを参照できます。
public static string AssemblyLocation()
{
var assembly = Assembly.GetExecutingAssembly();
var codebase = new Uri(assembly.CodeBase);
var path = codebase.LocalPath;
return path;
}
このアプローチは、テストをローカルで実行する場合、または TFS からのビルドの一部としてテストを実行する場合に機能し、次の場所でファイルを探します。
...\SpecFlowTests\bin\Debug\Helpers\TestDataFile.txt
ただし、TFS でリリースの一部としてそれらを実行しようとすると、TestResults ディレクトリの Out フォルダーでテスト データ ファイルが検索され、そこでは見つかりません。
C:\buildagent1\_work\r1\a\TestResults\Out\Helpers\TestDataFile.txt
次に、テストの BeforeFeature メソッドに DeploymentItem 属性を設定しようとしましたが、うまくいかないようです。テスト データ ファイルを TestResults の Out フォルダーに配置する必要がありますが、そうではありません。
したがって、3 つの状況すべてで機能する共通のソリューションが必要です (テストをローカルで実行する、TFS ビルドから実行する、TFS リリースから実行する)。
私はこれに比較的慣れていないので、アドバイスをいただければ幸いです。
ありがとう!