Después de la ejecución de los dos casos de prueba siguientes, se imprime una ejecución COM en la consola. ¿Qué estoy haciendo mal?Excepciones COM a la salida con WPF
Si ejecuto cualquiera de las pruebas individualmente, o si ejecuto ambas pruebas juntas, la excepción se escribe en la consola exactamente una vez. Esto me hace sospechar que hay algún tipo de recurso por dominio de aplicación que no estoy limpiando.
He intentado las pruebas con NUnit y con MSTest, con el mismo comportamiento en ambos entornos. (En realidad, no estoy seguro de si se está ejecutando ambas pruebas en los resultados MSTest en una sola copia impresa o dos excepciones.)
Excepción:
System.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used.
at System.Windows.Input.TextServicesContext.StopTransitoryExtension()
at System.Windows.Input.TextServicesContext.Uninitialize(Boolean appDomainShutdown)
at System.Windows.Input.TextServicesContext.TextServicesContextShutDownListener.OnShutDown(Object target)
at MS.Internal.ShutDownListener.HandleShutDown(Object sender, EventArgs e)
Código de ensayo:
using NUnit.Framework;
namespace TaskdockSidebarTests.Client
{
[TestFixture, RequiresSTA]
public class ElementHostRCWError
{
[Test]
public void WinForms()
{
var form = new System.Windows.Forms.Form();
var elementHost = new System.Windows.Forms.Integration.ElementHost();
form.Controls.Add(elementHost);
// If the form is not shown, the exception is not printed.
form.Show();
// These lines are optional. The exception is printed with or without
form.Close();
form.Controls.Remove(elementHost);
elementHost.Dispose();
form.Dispose();
}
[Test]
public void WPF()
{
var window = new Window();
// If the window is not shown, the exception is not printed.
window.Show();
window.Close();
}
}
}
Tal http://social.msdn.microsoft.com/forums/en-US/vststest/thread/e53fdc45-23f3-4aee-aad9-f63769f2c638/ ayuda –
Lamentablemente, no puedo usar MTA, como WPF requiere STA. Crear el formulario y el elemento host en SetUp tampoco parece ser el truco. Argh. –
Si no me equivoco, esta excepción no hace que unittest falle, ¿o sí? He encontrado la misma excepción al realizar una prueba unitaria de mis controles WPF, elegí ignorarlo ...;) – Bubblewrap