2009-06-17 23 views
15

tengo una prueba Unidad Visual Studio 2008 y estoy consiguiendo el error siguiente de tiempo de ejecución:No se puede establecer la propiedad TestContext

Unable to set TestContext property for the class JMPS.PlannerSuite.DataServices.MyUnitTest. Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' 

He leído que VS 2008 no actualiza correctamente las referencias al UnitTestFramework al convertir Proyectos de 2005 Mi prueba unitaria fue creada en 2008 pero hereda de una clase base construida en VS 2005. ¿De aquí viene mi problema? ¿Mi clase base debe ser reconstruida en 2008? Prefiero no hacer esto, ya que afectará a otros proyectos.

En otras pruebas de unidades derivadas construidas en 2005, todo lo que teníamos que hacer era comentar la propiedad TestContext en la prueba de unidad derivada. Lo intenté en la prueba de la unidad VS 2008 sin suerte. También he intentado "actualizar" la propiedad TestContext, lo que me da un error de tiempo de ejecución diferente.

¿Alguna idea?

+0

Traté de convertir la clase base a VS 2008 y ahora parece funcionar. Pero, preferiría no hacer esto, ya que obligará a otros proyectos a convertirse. Entonces, si hay alguna forma de evitar esto, sería genial. – bsh152s

+0

Estoy teniendo el mismo problema en una clase de prueba que construí en VS2008. – jcollum

Respuesta

0

Me encontré con el mismo problema. Resultó que uno de mis proyectos estaba haciendo referencia a los ensamblados 8.0 y el otro hacía referencia a 9.0. La solución compilada, pero obtuve una excepción de tiempo de ejecución.

1

Lo publico aquí con la esperanza de que ayude a alguien a probar un proyecto de dispositivo inteligente. Tengo un error muy similar cuando intentó por primera vez para ejecutar una prueba de unidad de un método en un proyecto de dispositivos inteligentes que estaba trabajando en Visual Studio 2008:

Error: System.ArgumentException: Object of type 'Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext' cannot be converted to type 'Microsoft.VisualStudio.TestTools.UnitTesting.TestContext' 

buscar en Google el error devuelto resultados que sugerían que fue causada por actualizar un proyecto de prueba del formato de Visual Studio 2005 a 2008 y que la referencia a UnitTestFramework.dll todavía era para la versión anterior (8.0) y la actualización requerida. Esto no se aplica a mí ya que no actualicé mi proyecto de prueba de VS2005. Entonces continué buscando.

Después de horas de búsqueda por otras causas para el error, sin éxito, que tropezaron con las siguientes referencias en el proyecto de dispositivos inteligentes:

  • Microsoft.WindowsMobile.dll
  • Microsoft.WindowsMobile.Status.dll

Visual Studio fue la obtención de estas referencias de la siguiente carpeta:

C:\Program Files\Windows Mobile 5.0 SDK R2\Managed Libraries 

Sin embargo, la plataforma de destino del proyecto de dispositivo inteligente era Windows Mobile 6 Professional SDK. No me di cuenta de esto antes, ya que originalmente no creé el proyecto de dispositivo inteligente. Así que me quita las referencias a los dos archivos DLL y los Readded de la siguiente carpeta:

C:\Program Files\Windows Mobile 6 SDK\Managed Libraries 

Después de la reconstrucción del proyecto de dispositivo inteligente, que ejecuta el método de prueba tuvo éxito.

19

Tuve el mismo problema en Visual Studio 2012 cuando actualicé un proyecto anterior (creo que en 2005).

La referencia a Microsoft.VisualStudio.QualityTools.UnitTestFramework debe eliminarse haciendo clic con el botón derecho en el Explorador de soluciones y luego eliminándolo.

Para añadir el correcto:

  1. Agregar nueva referencia
  2. Extensiones, encontrar Microsoft.VisualStudio.QualityTools.UnitTestFramework, es probable varios
  3. ratón sobre para mostrar la ruta, elegir la en ../IDE/PublicAssemblies
  4. limpias
  5. Reconstruir
  6. volver a ejecutar las pruebas
+1

Esto también me funcionó en VS 2010. La ruta en el paso 3, si no está familiarizado, es Program Files/Visual Studio (su versión, la mía era 10)/Common7/IDE/PublicAssemblies. –

+0

La respuesta anterior funcionó para mí. En caso de que todavía esté combatiendo, intente: dbl-click SmartDeviceTestRun.testrunConfig (creado cuando se creó el proyecto de prueba de unidad) -> Hosts -> elija su plataforma y Dispositivo. Además: proyecto de prueba de r-click -> propiedades -> dispositivos -> seleccione su dispositivo de destino (el dispositivo objetivo de prueba del proyecto debe ser igual al dispositivo objetivo del proyecto real). – robor78

+0

Tengo el mismo problema y mi UTFramework se hace referencia a C: \ Archivos de programa (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ReferenceAssemblies \ v2.0 \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll para VS 2012 – Random

Cuestiones relacionadas