c# - ¿Qué significa "Método... ClassInitialize tiene una firma errónea..." significa?
unit-testing visual-studio-2012 (4)
La instalación tiene una firma incorrecta. El parámetro 1 debe ser de tipo Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.
Estaba ejecutando un proyecto de prueba de carga y tenía ambas versiones v10.0.0.0 de las DLL:
Microsoft.VisualStudio.QualityTools.LoadTestFramework.dll
Microsoft.VisualStudio.QualityTools.WebTestFramework.dll
Cambiar la versión LoadTestFramework a la versión 10.1 no lo solucionó.
Tuve que ir a mi Proyecto de prueba de unidad y eliminar las referencias de MSTest.Adapter:
Microsoft.VisualStudio.TestPlatform.TestFramework.dll
Microsoft.VisualStudio.TestPlatform.Extensions.dll
Luego, en el Proyecto de prueba unitaria, agregue una referencia al v10.1.
Microsoft.VisualStudio.QualityTools.LoadTestFramework.dll
En mi solución de Visual Studio 2012 tengo un proyecto de C # para pruebas unitarias de código C ++ / CLI, por ejemplo
...
using System.IO;
using Stuff;
namespace MyCLIClassTest
{
[TestClass]
public class MyCLIClassTest
{
public MyCLIClassTest() {}
[ClassInitialize]
public static void Setup(TestContext testContext)
{
}
[TestMethod]
public void LibraryAccessTest()
{
...
}
}
}
Ahora, las pruebas de C # fallan con un mensaje como "Método MyCLIClassTest.MyCLIClassTest.ClassInitialize tiene una firma incorrecta. El método debe ser estático, público, no debe devolver un valor y debe tomar un único parámetro de tipo TestContext".
Después de eliminar el ClassInitializer, obtuve "No se puede establecer la propiedad TestContext para la clase MyCLIClassTest.MyCLIClassTest. Error: System.ArgumentException: El objeto de tipo ''Microsoft.VisualStudio.TestPlatform.MSestucts.es .UnitTesting.TestContext ''..
Se copió una respuesta alternativa de una pregunta duplicada: ¿Por qué un método decorado de ClassInitialize hace que todas mis pruebas fallen?
El método decorado [ClassInitialize]
debe ser estático y tomar exactamente un parámetro de tipo TestContext:
[ClassInitialize]
public static void SetupAuth(TestContext context)
{
var x = 0;
}
Tuve exactamente el mismo problema y eliminar / agregar referencias según lo sugerido por TobiMcNamobi no lo resolvió, pero al eliminar la referencia, haga clic con el botón derecho en el proyecto y seleccione "Agregar> Prueba de unidad ..." y, por lo tanto, se vuelve a generar la referencia. trabajó. No estoy seguro de cuál fue la diferencia en comparación con hacerlo manualmente.
Utilicé archivos DLL de versiones anteriores del framework de pruebas unitarias. Esto sucedió porque el proyecto migró recientemente a VS2012.
Por lo tanto, en el explorador de soluciones del proyecto de prueba, encontrará "Referencias". Haga clic derecho y seleccione "Agregar referencia ..." para abrir el Administrador de referencias. Busque "unittest" y verifique Microsoft.VisualStudio.QualityTools.UnitTestFramework con el número de versión 10.1.0.0. Desmarque todas las demás versiones de este ensamblaje. Cierre el administrador haciendo clic en Aceptar.