私はVisualStudio2012を使用しており、Visual Studioのテストフレームワーク(mstest)を使用していくつかの統合テストを開発しています。
数日前、Visual Studio 2012が出力ディレクトリ(つまり、 bin \ Debug、bin \ Release )でテストを実行できるようになったという情報を見つけ、多くのことを簡素化するために展開を無効にしました。
ほとんどのことが期待どおりに機能しましたが、大きな問題が見つかりました。一部の[ClassInitialize]
コードはクラスを使用してプロセスを実行し、デプロイメントProcess
を無効にした直後に、プロセスが起動されるたびに次のエラーが発生します。
私の第一印象は、起動プロセスの何かが間違っていた可能性があり、同じコマンドと引数をCMDにコピーして貼り付けたところ、期待どおりに機能したということでした。
調査の結果、なぜこれが発生したのかがわかりました。テストランナーを64ビットプロセスとして起動するように構成したためです。たとえば、X86に切り替えた後は機能しProcess.Start("cmd")
ました。
しかし、さらに悪いのは、 SQLCMD(テスト実行内で起動している実際のプロセス)が、いわゆるエラーで失敗することです。
このエラーは、VisualStudioテストランナー内でプロセスが起動されたときに発生します。
テストランナーから起動すると、SQLCMDはどうなりますか?