Test Manager fails to load after installing Test Scribe
A few weeks ago I was at a client doing a proof of concept for the testing tools (MTM for manual testing, Visual Studio for automated testing at the UI level and off course also using TFS for full traceability and collaboration between the testing team and the development team). And
I had a little problem MTM was crashing immediately on startup (there is was no evidence why this was happening, just a stack trace on windows event log).
One of the things I was showing them was Test Scribe. Test Scribe is a Test Manager add-on that allows you to generate documentation about your test plans and the test runs. People who use the tool don’t need this since they have live that on TFS but some people like to see documents or we may need to generate some documentation to deliver to the client to show evidence that tests (and which ones) have been executed, or perhaps we need documents to serve as evidence and to be signed by someone due to contractual or auditing reasons. The reason is not very important since everyone will probably have a different.
Test Scribe is freely available and you can download it from Visual Studio Gallery here
Anyway the symptoms are, when you launch test manager you can see splash screen and then application fails. If you uninstall test scribe everything works perfectly. Since uninstalling is not a nice option there is an easier solution. Install Team Explorer 2010 on the machine. Test Scribe has a dependence on Team Explorer but it’s not clear on the site.
If you are a tester and have not installed Team Explorer because you thought it was a developer thing and MTM was all you needed installing Team Explorer also has a nice bonus, it will allow you to perform this useful tasks
- Manipulate you work items via Excel
- See reports (which off course and can always see using just a browser if you prefer_)_
- Send work items by email (great for emailing a list of bugs)
- If you also install the TFS Power Tools you will also be able to use the Alerts Explorer to create & manage alerts of things happening on TFS. Alerts are delivered by email, for example you could
- Be alerted when a bug is resolve and it is assigned to you
- When a build finishes (you may have some bugs to verify in it )
- among other things
A little word for Gautam Goenka who helped me track the issue.
Anyway I’m documenting this in case someone is also hit by this problem. If you are, just install Team Explorer 2010 and everything will be fine.
I’m including the full stack trace so people who are affected by this issue can easily find it on their preferred search engine (the stack trace was obtained by using the windows event viewer. No need to enable any kind of tracing to get it).
Application: mtm.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Reflection.ReflectionTypeLoadException
Stack:
at System.Reflection.RuntimeModule.GetTypes(System.Reflection.RuntimeModule)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at System.ComponentModel.Composition.Hosting.AssemblyCatalog.get_InnerCatalog()
at System.ComponentModel.Composition.Hosting.AssemblyCatalog.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)
at System.ComponentModel.Composition.Hosting.AggregateCatalog.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition)
at System.ComponentModel.Composition.Hosting.CatalogExportProvider.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition)
at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition, System.Collections.Generic.IEnumerable1<System.ComponentModel.Composition.Primitives.Export> ByRef) <br />   at System.ComponentModel.Composition.Hosting.AggregateExportProvider.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition) <br />   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition, System.Collections.Generic.IEnumerable
1<System.ComponentModel.Composition.Primitives.Export> ByRef)
at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExports(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition, System.Collections.Generic.IEnumerable1<System.ComponentModel.Composition.Primitives.Export> ByRef) <br />   at System.ComponentModel.Composition.Hosting.CompositionContainer.GetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition) <br />   at System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition, System.Collections.Generic.IEnumerable
1<System.ComponentModel.Composition.Primitives.Export> ByRef)
at System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition)
at System.ComponentModel.Composition.Hosting.ImportEngine.TryGetExports(System.ComponentModel.Composition.Hosting.ExportProvider, System.ComponentModel.Composition.Primitives.ComposablePart, System.ComponentModel.Composition.Primitives.ImportDefinition, System.ComponentModel.Composition.Hosting.AtomicComposition)
at System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportSubset(PartManager, System.Collections.Generic.IEnumerable`1<System.ComponentModel.Composition.Primitives.ImportDefinition>, System.ComponentModel.Composition.Hosting.AtomicComposition)
at System.ComponentModel.Composition.Hosting.ImportEngine.TryPreviewImportsStateMachine(PartManager, System.ComponentModel.Composition.Primitives.ComposablePart, System.ComponentModel.Composition.Hosting.AtomicComposition)
at System.ComponentModel.Composition.Hosting.ImportEngine.PreviewImports(System.ComponentModel.Composition.Primitives.ComposablePart, System.ComponentModel.Composition.Hosting.AtomicComposition)
at System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)
at System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(System.ComponentModel.Composition.Hosting.CompositionBatch)
at Microsoft.VisualStudio.Tools.Shakespeare.ShakespeareRuntime.Configure(System.String, System.Reflection.Assembly[])
at Microsoft.TeamFoundation.TestManagement.Activities.Tools.ToolsCenterGroup.Initialize(Microsoft.TeamFoundation.TestManagement.Client.Runtime.IActivityRuntime)
at Microsoft.TeamFoundation.TestManagement.Client.Runtime.ActivityRuntime.InitializeCenterGroups()
at Microsoft.TeamFoundation.TestManagement.Client.Runtime.ActivityRuntime.InitializeRuntime()
at Microsoft.TeamFoundation.TestManagement.Client.Runtime.ActivityRuntime.GetCurrentRuntime()
at Microsoft.TeamFoundation.TestManagement.Shells.WpfShell.App.OnStartup(System.Windows.StartupEventArgs)
at System.Windows.Application.<.ctor>b__1(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
at System.Threading.ExecutionContext.runTryCode(System.Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
at System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(System.Object)
at System.Windows.Application.RunInternal(System.Windows.Window)
at System.Windows.Application.Run(System.Windows.Window)
at Microsoft.TeamFoundation.TestManagement.Shells.WpfShell.SingleInstanceWrapper.Launch(System.String[], Boolean)
at Microsoft.VisualStudio.TestTools.Common.SingleInstance.SingleInstanceApplicationManager.Run(System.String, System.String, LaunchAction, System.String[])
at Microsoft.TeamFoundation.TestManagement.Shells.WpfShell.SingleInstanceWrapper.Main(System.String[])
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.