NUnit y Single Threaded Apartment (STA)

abril 27, 2009

En Nunit, cuando intentas ejecutar codigo de prueba que utilice el portapapeles(o cualquier objeto OLE para tal caso), el .NET se queja de que “el hilo actual debe establecerse en single threaded apartment STA antes de realizar llamadas OLE”

Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it.

Para ello debes crear un archivo de configuracion donde especifiques que la prueba se ejecute en un contexto STA, el archivo debe contener al menos lo siguiente

<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>
  <configSections>
    <sectionGroup name=”NUnit”>
      <section name=”TestRunner” type=”System.Configuration.NameValueSectionHandler”/>
    </sectionGroup>
  </configSections>

  <NUnit>
    <TestRunner>
      <add key=”ApartmentState” value=”STA” />
    </TestRunner>
  </NUnit>
</configuration>

La ubicación y el nombre del archivo de configuración depende de como cargues la prueba, ya sea cargando directamente el ensamblado, un proyecto de nunit, un proyecto o una solución de visual studio. Yo lo hago mediante el archivo de la solución de visual studio; es por ello que en el mismo directorio donde se encuentra ubicado este archivo colocó uno con el mismo nombre que la solución pero anexando la extensión .config y con el contenido expuesto en la parte superior.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: