Dopo l'esecuzione di entrambi i seguenti casi di test, l'esecuzione COM viene stampata sulla console. Che cosa sto facendo di sbagliato?Eccezioni COM all'uscita con WPF
Se eseguo entrambi i test singolarmente o se eseguo entrambi i test insieme, l'eccezione viene scritta sulla console esattamente una volta. Questo mi fa sospettare che ci sia una sorta di risorsa per AppDomain che non sto pulendo.
Ho provato i test con NUnit e con MSTest, con lo stesso comportamento in entrambi gli ambienti. (In realtà, non sono sicuro se in esecuzione entrambi i test nei risultati MSTest in una sola eccezione stampa o due.)
Eccezione:
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)
Codice di prova:
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();
}
}
}
Forse http://social.msdn.microsoft.com/forums/en-US/vststest/thread/e53fdc45-23f3-4aee-aad9-f63769f2c638/ aiuta –
Purtroppo, non posso usare MTA, come WPF richiede STA. Anche la creazione dell'host di modulo e elemento in SetUp non sembra fare il trucco. Argh. –
Se non mi sbaglio, questa eccezione non causa il fallimento del test, vero? Ho riscontrato la stessa eccezione durante la disattivazione dei miei controlli WPF, ho scelto di ignorarlo ..;) – Bubblewrap