ローカルマシンで作業しているテスト(MS TESTで実行中)の一環として、バッチファイルをプログラムでC#で実行したいと思っています。実行したいバッチファイルは、ソースコードを含むサポートフォルダ内のリポジトリにあります。 VSTSでのテストはこのように実行されていますVSTSのファイルへのパス
"C:\プログラムファイル(x86の)\のMicrosoft Visual Studioの14.0 \ Common7 \ IDE \ CommonExtensions \マイクロソフト\ TestWindowの\ vstest.console.exe"「C:\ International \ InternationalAppAutomation \ International.IntegrationTests.UI \ International.IntegrationTests.UI \ bin \ Debug \ International.IntegrationTests.UI.dll "" C:\ International \ InternationalAppAutomation \ International.IntegrationTests.UI \ International.IntegrationTests.UI \ obj \ Debug/International.IntegrationTests.UI.dll "/ TestCaseFilter:" TestCategory = Explore "/Settings:"C:\International\InternationalAppAutomation\International.IntegrationTests.UI\International.IntegrationTests.UI\QA.testsettings"/logger:trx/TestAdapterPath: "C:\ International \ InternationalAppAutomation"
と、VSTSがローカルマシンとは異なる場所から実行されるため、バッチファイルを実行するために相対パスを使用しているため、VSTSは失敗します。この問題の推奨される解決策は何ですか?
注 - このバッチファイルは非常に大きく、新しいテスト実行ごとにコピーしたくないため、このバッチファイルをテスト出力フォルダに入れることはできません。
おかげ
テストクラスに適切な
TestContext
プロパティを追加することで、あなたからこれらのディレクトリを取得することができます。しかし、問題はバッチファイルにパスを渡すのではなく、バッチファイルへのパスを取得することです。 VSTSはバッチファイルがリポジトリ内にあるのでバッチファイルがどこにあるかを知っておく必要がありますが、VSTSはサーバー上でテストファイルを異なる方法で実行します。 – gmoerkerken