[c#] El método de prueba no es concluyente: la prueba no se ejecutó. ¿Error?



Answers

Para mí fue bastante frustrante, pero al menos he encontrado una solución para mi caso:

Si su TestMethod es asíncrono, no puede ser nulo. DEBE devolver la Tarea.

Espero que ayude a alguien :)

Question

Tengo una clase de prueba y a continuación he publicado una prueba de muestra de la clase de prueba

namespace AdminPortal.Tests.Controller_Test.Customer
{
    [TestClass]
    public class BusinessUnitControllerTests
    {
        private IBusinessUnitRepository _mockBusinessUnitRepository;
        private BusinessUnitController _controller;

        [TestInitialize]
        public void TestInitialize()
        {
            _mockBusinessUnitRepository = MockRepository.GenerateMock<IBusinessUnitRepository>();
            _controller = new BusinessUnitController(_mockBusinessUnitRepository);
        }

        [TestCleanup]
        public void TestCleanup()
        {
            _mockBusinessUnitRepository = null;

            _controller.Dispose();
            _controller = null;

        }

        #region Index Action Tests
        [TestMethod]
        public void Index_Action_Calls_GetAllBusinessUnit()
        {
            _mockBusinessUnitRepository.Stub(x => x.GetAllBusinessUnit());

            _controller.Index();

            _mockBusinessUnitRepository.AssertWasCalled(x=>x.GetAllBusinessUnit());
        }
    }
}

Cuando ejecuto el proyecto, obtengo la siguiente pantalla

Revisé las referencias y el proyecto de prueba tiene la referencia al proyecto principal. ¿Alguna idea de por qué la prueba no se está ejecutando o diciendo que no fueron concluyentes?

Editar 1:

Vi una publicación here y cambié la arquitectura de procesador predeterminada de mi configuración de prueba a X64, pero todavía no funciona.




Fue un problema de Resharper. En las opciones de Resharper-> Herramientas-> MSTEST, desactivé el uso de Legacy Runner y ahora funciona.




¿Ha agregado alguna dependencia DLL recientemente? ... como yo

Me encontré con el mismo problema y fue muy exasperante no obtener ninguna pista en la ventana de resultados de la prueba o en otro lugar práctico.

La causa fue extremadamente estúpida: acabo de agregar el día antes de la dependencia a una DLL externa adicional en un subproyecto, y la aplicación principal del proyecto realmente se compiló y ejecutó correctamente después del cambio. Pero mis pruebas unitarias están en un proyecto hermano de la aplicación principal y, por lo tanto, también tenían la dependencia de este sub proyecto modificado donde se invocaba el DLL ... ¡sin embargo, la ubicación del tiempo de ejecución del proyecto de prueba no es la de la aplicación principal! Así que cambiar el build para copiar el DLL faltante en el directorio de tiempo de ejecución de prueba solucionó el problema.




Si está utilizando xUnit , resolví el problema al instalar el paquete xunit.running.visualstudio . (Actualmente utiliza xUnit 2.3.1 y VS17 Enterprise 15.3.5 )




En mi caso, fue un error que cometí al copiar la conexión en la aplicación. Configuré ... ¡Lo puse dentro de la etiqueta configSections!

Me tomó un tiempo darme cuenta de que ... gracias VS intellisense sin embargo ... ¿o fue resharper?




En mi caso, todas las pruebas dentro de algunos proyectos de prueba dentro de una solución comenzaron a no ejecutarse después de que agregué nuevos proyectos. Usando VS 2017 con ReSharper 2017.1.2 aquí.

En primer lugar, asegúrese de no perder el tiempo suponiendo que su problema está relacionado con ReSharper. Es fácil suponer que hay algo mal con ReSharper si usa las características de prueba de la unidad, incluido Unit Test Explorer . Abra el Explorador de pruebas de Visual Studio en el menú Prueba e intente Ejecutar todo ". La ventaja adicional de hacer esto es que la ventana de resultados mostrará un mensaje de error que podría indicarle la dirección correcta. Si observa que el mismo conjunto de pruebas no se ejecutan, entonces es seguro asumir que el problema es con Visual Studio y no con ReSharper.

Terminé borrando y volviendo a agregar una de las plataformas de soluciones Activas , Cualquier CPU , en Configuration Manager . Al hacerlo, después de guardar mis cambios y volver a abrir la solución, todas las pruebas comenzaron a ejecutarse nuevamente.

Creo que hubo una entrada de configuración inesperada en el archivo de solución cuando agregué nuevos proyectos y al usar la recreación de una de las plataformas, se corrigió a sí mismo. Traté de diferir, pero era difícil decir qué había cambiado para causar el problema.




Para mí, una prueba creó este error y resultó que involuntariamente me salté la prueba. En la parte izquierda de la pantalla, donde haces clic para poner un punto de quiebre, es posible que notes que tu prueba está programada para omitirse (hay un icono de Microsoft para indicar esto). Permití la prueba y el error desapareció.




Causado por falta (no corrupto) archivo App.Config. Agregar nuevo (Agregar -> Nuevo elemento ... -> Archivo de configuración de la aplicación) lo solucionó.




Tuve el mismo problema. Estaba relacionado con la versión de compatibilidad entre NUnit 3.5 y Resharper 9.2, ya que se solucionó al degradar de NUnit 3.5 a 2.6.4. Funcionó para mí buena suerte.




Estoy usando VS2010, NUnit 2.6.3 (aunque internamente ReSharper dice que está usando 2.6.2?), ReSharper 7.7.1 y NCrunch 2.5.0.12 y estaba corriendo en la misma "... la prueba no es concluyente ..." con NUnit, pero NCrunch dijo que todo estaba bien. Durante la mayor parte de hoy, NUnit y NCrunch estuvieron de acuerdo sobre qué pruebas eran satisfactorias y cuáles necesitaban refactorización; luego sucedió algo que todavía no entiendo, y durante un tiempo NCrunch dijo que tenía pruebas fallidas (pero al pasar por ellas se las mostró a pase), luego decidieron que todos estaban trabajando, y NUnit comenzó a quejarse de todas mis pruebas, excepto una con el mismo mensaje "... la prueba no es concluyente ...", que nuevamente fui capaz de pasar paso a paso aunque NUnit continuó para mostrarlo como "inconcluso").

Probé varias de las sugerencias anteriores sin éxito, y finalmente cerré VS2010 y volví a abrir la solución. Voila, ahora todas mis pruebas son felices otra vez, y NCrunch & NUnit están reportando los mismos resultados nuevamente. Lamentablemente, no tengo idea de qué cambió para que no se sincronicen, pero el cierre y la reapertura de VS2010 parecen haberlo solucionado.

Tal vez alguien más se encuentre con esto y pueda usar esta solución simple (aunque en última instancia insatisfactoria ya que no sabes cuál es la solución real).




En mi caso, recibí este error debido al modo 'Liberar', donde la construcción del proyecto UnitTests simplemente se desconectó. El cambio al modo 'Debug' lo solucionó.

Es realmente sorprendente que ReSharper no pueda decir nada en caso de que no pueda encontrar la biblioteca UnitTests en absoluto. En serio, es una pena;)

Espero que ayude a alguien




En mi caso, creé un método de prueba asíncrono que devolvió void . La devolución de la Task lugar del void resolvió el problema.




Para mí, simplemente limpiar y reconstruir la solución lo solucionó.




Tuve el mismo problema. El culpable era una referencia externa que no era compatible con la configuración de mi proyecto. Para resolver, hice clic derecho en el proyecto-> propiedades-> construir-> Plataforma Objetivo-> cambiar de Cualquier CPU a x86.

El * .dll particular con el que estaba trabajando era System.Data.SQLite. Ese particular * .dll está codificado para una operación de 32 bits. El ajuste "Cualquier CPU" intentó cargarlo como 64 bit.




En mi caso, hice referencia a 2 proyectos de mi unittestproject. Ambos proyectos referenciados usaron un dll con el mismo nombre, pero con una versión diferente.

No me di cuenta de esto en Visual Studio. Noté el error en el Eventviewer.

Para resolver esto, utilicé bindingRedirect en el app.config del unittestproject para arreglar la versión dll.






Related