1

最近、Jenkins の MSTest でテストを実行しようとしたときに、'TargetInvocationException' エラーが発生しました。今日、MSTest から VsTest.Console.exe に切り替えました。より詳細なエラー メッセージを表示できましたが、問題は同じです。

Google で、この例外の原因を示すものは見つかりませんでした。私がそれを正しく理解していれば、例外はテストからではなく、MSTest フレームワークから発生しています。

TpTrace Warning: 0 : 10032, 3, 2018/10/31, 15:22:23.137, 54721019933, testhost.x86.exe, TestSettings will soon be deprecated for automated unit and functional testing scenarios. It is recommended that you use RunSettings. To learn more, see http://aka.ms/runsettings
    TpTrace Verbose: 0 : 10032, 3, 2018/10/31, 15:22:23.137, 54721020301, testhost.x86.exe, TestRequestHandler.SendData:  sending data from testhost: {"Version":2,"MessageType":"TestSession.Message","Payload":{"MessageLevel":1,"Message":"TestSettings will soon be deprecated for automated unit and functional testing scenarios. It is recommended that you use RunSettings. To learn more, see http://aka.ms/runsettings"}}
    TpTrace Error: 0 : 10032, 3, 2018/10/31, 15:22:23.256, 54721419216, testhost.x86.exe, TmiDiscoveryRequest: Error occured while discovering tests from source F:\Jenkins\Workspace\[...]\My.dll. System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExtensionInfo' threw an exception. ---> System.TypeLoadException: Could not load type 'Microsoft.VisualStudio.TestTools.Common.TestTypesXml' from assembly 'Microsoft.VisualStudio.QualityTools.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
       at Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExtensionInfo..cctor()
       --- End of inner exception stack trace ---
       at Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestExtensionInfo.GetExtensionNames(IWarningHandler warningHandler)
       at Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestTip.InitializeExtensions()
       at Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestTip..ctor(ITmi tmiInstance)
       --- End of inner exception stack trace ---
       at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
       at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
       at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
       at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
       at System.Activator.CreateInstance(Type type, Object[] args)
       at Microsoft.VisualStudio.TestTools.TestManagement.TipDelayLoader.LoadTip()
       at Microsoft.VisualStudio.TestTools.TestManagement.TipDelayLoader.GetTip()
       at Microsoft.VisualStudio.TestTools.TestManagement.Tmi.GetTipsFromTestTypeInfos(IList`1 infos)
       at Microsoft.VisualStudio.TestTools.TestManagement.Tmi.LoadTestsFromTipsHelper(IEnumerable`1 locations, ProjectData projectData)
       at Microsoft.VisualStudio.TestTools.TestManagement.Tmi.LoadTests(IEnumerable`1 locations, ProjectData projectData, TestConflictHandler vetoingHandler)
       at Microsoft.VisualStudio.TestTools.TestManagement.Tmi.LoadTests(String location, ProjectData projectData, TestConflictHandler vetoingHandler)
       at Microsoft.VisualStudio.TestTools.TestManagement.Tmi.LoadTests(String location, ProjectData projectData)
       at Microsoft.VisualStudio.TestPlatform.Extensions.TmiHelper.TmiDiscoveryRequest.DiscoverTests(String source, Tmi tmi)
       at Microsoft.VisualStudio.TestPlatform.Extensions.TmiHelper.TmiDiscoveryRequest.DiscoverTests(IEnumerable`1 sources, Tmi tmi)
TpTrace Information: 0 : 10032, 3, 2018/10/31, 15:22:23.257, 54721419815, testhost.x86.exe, TestDiscoveryManager.RunMessage: calling TestRunMessage(Warning, Exception has been thrown by the target of an invocation.) callback.
TpTrace Warning: 0 : 10032, 3, 2018/10/31, 15:22:23.257, 54721420131, testhost.x86.exe, Exception has been thrown by the target of an invocation.

私の考えでは、このエラーは Visual Studio の更新後に発生したと考えられますが、確実に確認することはできません。Jenkins マシンで Visual Studio Community 2017 15.8.8 を使用しています。VS からテストを実行することは問題ではありません。また、まだ TestSettings を使用しており、最初に次の警告メッセージが表示されることにも言及する価値があります。

Test run will use DLL(s) built for framework .NETFramework,Version=v4.5 and platform X86. Following DLL(s) do not match framework/platform settings.
SPManagerTests.dll is built for Framework 4.5.2 and Platform AnyCPU.

しかし、これらはそれほど重要ではないことがわかりました。

解決策に進む方法はありますか?

4

2 に答える 2