VS 2012 を搭載した TFS ビルド サーバーを使用しており、チーム プロジェクトには単体テストがあります。以前は 2010 年でしたが、すべてうまくいきました。サーバーを再インストールし、VS2012 を使用しています。ビルドで単体テストが開始されると (buildlog に従って)、Visual Studio 10 フォルダーの下で MSTest.exe が実行されます。単体テストを開始できません - ログにエラーはありませんが、ハングするだけです。
コマンド (ログ ファイルのスニペット) を手動で実行し、フォルダーを Visual Studio 11 に置き換えると、単体テストが実行されます。
VS 2012 が mstest の 10 バージョンを使用しているのはなぜですか? 使用されている他のすべての VS 実行可能ファイルは 11 バージョンですか? 「場所mstest.exe
」は、同じサーバー内の11未満のフォルダーを示しています。
Visual Studio 10 フォルダーがあるのはなぜですか? このサーバーにはバージョン 10 がインストールされていません。
単体テスト プロジェクトでは、正しい unittest フレームワークが参照されますが (VS 11 フォルダーの下)、プロパティによるとバージョン 10.0.0 のようにも見えます。
ビルド サーバーのログには次のものがあります。
ソース VSTTExecution からのイベント ID 0 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが破損しています。コンポーネントをローカル コンピューターにインストールまたは修復できます。
イベントが別のコンピューターで発生した場合、表示情報をイベントと共に保存する必要がありました。
イベントには次の情報が含まれていました。
(MSTest.exe, PID 3324, Thread 10) DIA initialization threw:
System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {B86AE24D-BF2F-4AC9-B5A2-34B14E4CE11D} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Microsoft.VisualStudio.TestTools.Common.DiaHelper.GetSymbolsFileName (文字列 imagePath) で
メッセージ リソースは存在しますが、文字列/メッセージ テーブルにメッセージが見つかりません
(
QTAgent32.exe, PID 3780, Thread 12) Received exception calling Adapter.AbortTestRun: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidCastException: Object must implement IConvertible.
at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
at System.Runtime.Serialization.FormatterConverter.Convert(Object value, Type type)
at System.Runtime.Serialization.SerializationInfo.GetValue(String name, Type type)
at Microsoft.VisualStudio.TestTools.Common.SerializationHelper.GetField(Type fieldType, Object defaultValue)
at Microsoft.VisualStudio.TestTools.Common.SerializationHelper.GetField[T]()
at Microsoft.VisualStudio.TestTools.Common.TestResult..ctor(SerializationInfo info, StreamingContext context)
at Microsoft.VisualStudio.TestTools.Common.TestResultAggregation..ctor(SerializationInfo info, StreamingContext context)
at Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestResult..ctor(SerializationInfo info, StreamingContext context)
--- 内部例外スタック トレースの終了 ---