c# - test - Las pruebas unitarias de Resharper no funcionan
unit test c# visual studio 2013 (6)
Asegúrese de que no está haciendo lo que estaba haciendo y olvide por completo que la solución está en modo de lanzamiento con el proyecto de prueba configurado para compilar solo en modo de depuración ;-)
Estoy tratando de empezar a escribir pruebas unitarias en un proyecto. Primero escribí el createTest y lo probé. Esta prueba pasó y comencé a escribir mis otras pruebas.
Ahora todas mis pruebas solo dicen "Prueba no ejecutada". Esto sucede tanto cuando trato de ejecutar todas las pruebas a la vez como cuando ejecuto una sola prueba.
https://github.com/Requinard/OperationOctopus/tree/UnitTest
Todo lo que he encontrado hasta ahora es gente que usa NUnit. Estamos utilizando el marco de prueba predeterminado de Microsoft, con resharper ejecutando las pruebas.
[TestMethod]
public void CreateTest()
{
Init.Initialize();
// set up
UserModel user = new UserModel();
user.Address = "Testing Street 1";
user.Email = "[email protected]";
user.Level = 2;
user.Password = "test";
user.RfiDnumber = "00d0wad0aw";
user.Telephonenumber = "0638212327";
user.Username = "testcaseuser";
Assert.IsTrue(user.Create(), "Cannot write user to database");
test_user = user;
}
[TestMethod]
public void ReadTest()
{
Init.Initialize();
// set up
UserModel user = getTestUser();
Assert.AreEqual(user.Email, test_user.Email, "Reading returned an unexpected result");
}
[TestMethod]
public void AlterTest()
{
Init.Initialize();
UserModel user = getTestUser();
user.Email = "[email protected]";
Assert.IsTrue(user.Update(), "Failure during updating");
user.Read();
Assert.AreNotEqual(user.Email, test_user.Email);
}
[TestMethod]
public void DestroyTest()
{
Init.Initialize();
UserModel user = getTestUser();
Assert.IsTrue(user.Destroy(), "Could not destroy user");
}
Las pruebas anteriores harán que resharper diga "Prueba no ejecutada"
Acabo de intentar ejecutar las pruebas en mi computadora portátil. Trabajaron sin ningún cambio en el código y la prueba se completó instantáneamente. Esto me lleva a pensar que estoy tratando con una configuración defectuosa en algún lugar.
Creo que reiniciar todo el sistema puede haber sido un poco prematuro. He encontrado que cuando esto sucede, todo lo que necesita hacer es reiniciar Resharper.
Generalmente hago esto desde la ventana de comandos en Visual Studio, solo necesitas escribir estos comandos uno tras otro
Resharper_Suspend
Resharper_Resume
esto generalmente soluciona el problema para mí y no requiere volver a abrir la solución.
Si esto falla puedes borrar los cachés de resharper. La información se puede ver here sobre cómo hacer eso.
Aquí es cómo hacerlo desde el menú VS
Esto también me pasó a mí, y encontré el motivo aquí: http://www.henrikbrinch.dk/Blog/2012/02/15/Making-Resharper-testrunner-work-in-64-bit
Esta solución es realmente dura, y lo que hice fue cambiar la configuración: VS2015 -> Resharper -> Opciones -> Unidades de prueba -> Arquitectura de plataforma predeterminada - Forzar pruebas para ejecutar en proceso de 32 bits
Espero que esto te ayudará
Parece que hubo una mala configuración / en algún lugar /. Reinstalé todo el sistema, seguido de VS2013 y R #. Las pruebas ahora funcionan bien.
Se produjo un error en ReSharper 2017.3.1, que se corrigió en 2017.3.2: https://blog.jetbrains.com/dotnet/2018/02/01/resharper-ultimate-2017-3-2-bugfix/
Puede actualizar utilizando ReSharper
> Help
> Check for Updates
.
Puede ver si tuvo el mismo error habilitando los registros . Esto es lo que yo tenía:
--- EXCEPTION #2/2 [LoggerException]
Message = “Passed version string ''2.1.101'' doesn''t look to be a valid .net core sdk version”
Y eventualmente:
|W| UnitTestLaunch | System.NullReferenceException: Object reference not set to an instance of an object.
at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.NUnitServiceProvider.GetRunStrategy(IUnitTestElement element)
at JetBrains.ReSharper.UnitTestProvider.nUnit.v30.Elements.NUnitElementBase.GetRunStrategy(IHostProvider hostProvider)
at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.CollectProjectsToBuild()
at JetBrains.ReSharper.UnitTestFramework.Launch.Stages.BuildStage.Run(CancellationToken token)
at JetBrains.ReSharper.UnitTestFramework.Launch.UnitTestLaunch.RunStage(Object stageObject)
Mi proyecto utiliza NET471 y ejecuto ReSharper 2017.3.1 en Visual Studio 15.6.27428.2005