c# - full - r jetbrains
El método de prueba no es concluyente: la prueba no se ejecutó. ¿Error? (30)
¿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.
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.
Acabo de solucionar este problema también. Sin embargo, ninguna de las soluciones en este hilo funcionó. Esto es lo que hice ...
Como R # no proporcionaba ningún detalle sobre por qué fallaban las cosas, decidí probar el corrector de prueba integrado VS2013. Experimentó exactamente el mismo comportamiento donde ninguna de las pruebas se ejecutó. Sin embargo, al mirar en la ventana de resultados, finalmente tuve un mensaje de error:
Se ha producido una excepción al invocar al ejecutor ''ejecutor: // mstestadapter / v1'': la referencia del objeto no está configurada para una instancia de un objeto.
Esto me llevó a otro hilo en SO con una solución. Créanme, NUNCA hubiera adivinado cuál era el problema.
Recientemente realicé algunos cambios en el archivo AssemblyInfo.cs mientras creaba un paquete NuGet. Uno de los cambios incluye la especificación de un valor de cultura de ensamblaje de "en".
Cambié esto:
[assembly: AssemblyCulture("")]
a esto:
[assembly: AssemblyCulture("en")]`.
¡Eso fue todo! Eso es lo que inexplicablemente rompió mis pruebas unitarias. Todavía no entiendo por qué, sin embargo. Pero al menos las cosas están funcionando de nuevo. Después de revertir este cambio (es decir, volver a establecer el valor cultural en ""), mis pruebas comenzaron a ejecutarse nuevamente.
Espero que ayude a alguien por ahí.
Causado por falta (no corrupto) archivo App.Config. Agregar nuevo (Agregar -> Nuevo elemento ... -> Archivo de configuración de la aplicación) lo solucionó.
En caso de que ninguna de las opciones anteriores funcionó para nadie, solucioné mi instancia de este error al notar una entrada dañada en mi App.Config debido a un paquete nuget perdido en el proyecto de prueba.
En mi caso [Test]
métodos de [Test]
eran solo private
. Vergüenza
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.
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.
En mi caso, descubrí que TestCaseSource tiene una cantidad de argumentos diferente a la del parámetro en el método de prueba.
[Test, TestCaseSource("DivideCases")]
public void DivideTest(int n, int d, int q)
{
Assert.AreEqual( q, n / d );
}
static object[] DivideCases =
{
new object[] { 12, 3 },
new object[] { 12, 2 },
new object[] { 12, 4 }
};
Aquí, cada matriz de objetos en Casos de división tiene dos elementos, que deberían ser 3, ya que el método de Prueba dividida tiene 3 parámetros.
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, 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.
En mi caso, mi método de prueba era privado, lo cambié a público y funcionó.
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
Estaba teniendo este problema, y resultó ser lo mismo que este problema aquí . Esta respuesta resolvió el problema para mí .
- Desmarque "Solo crear proyectos de inicio y dependencias en Ejecutar" (Opciones -> Proyectos y soluciones -> Crear y ejecutar)
- En Configuration Manager, asegúrese de que tanto el proyecto de inicio como el proyecto de prueba tengan marcada la opción "Crear".
La segunda vez que acerté con este problema, fue debido a un signo comercial en el camino de archivo del proyecto donde residen las pruebas. Funciona bien con el corredor de prueba de ReSharper, pero no con dotCover. Retire el ampersand de la ruta de archivo.
Este es un error confirmado con dotCover.
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).
Estoy usando VS2013, ReSharper 9.1 con la extensión MSpec de ReSharper y Moq. Experimenté el mismo error "inconcluso".
Resultó que uno de los Mock''s de Moq no se inicializó, solo se declaró. Se inicializaron todas las pruebas se ejecutaron de nuevo.
Fue un problema de Resharper. En las opciones de Resharper-> Herramientas-> MSTEST, desactivé el uso de Legacy Runner y ahora funciona.
Mi solución:
NUnit 3.2.0 tiene algunos problemas con Resharper - downgrade to 2.6.4:
update-package nunit -version 2.6.4
Para aquellos que están experimentando este problema para mi proyecto de prueba .NET Core 2.0
en la Visual Studio 2017 Community (v15.3 3)
. También tuve este error usando JetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346
- hay un bug que JetBrains ReSharper Ultimate 2017.2 Build 109.0.20170824.131346
.
JetBrains aconseja crear un nuevo proyecto de prueba desde cero para reproducirlo. Cuando lo hice y obtuve las pruebas que funcionan bien, encontré el motivo que causa el problema:
- Elimine esto de su archivo
*.csproj
: -
Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}
"
Cuando lo hice, las pruebas comenzaron a funcionar bien.
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 :)
Para mí, el problema era un archivo XML de configuración NUnit / ReSharper corrupto (debido a una escasez de energía inesperada).
Para identificar el error, inicié Visual Studio con este comando :
devenv.exe /ReSharper.LogFile C:/temp/resharper.log /ReSharper.LogLevel Verbose
Al examinar el archivo, se reveló la siguiente excepción:
09:45:31.894 |W| UnitTestLaunch | System.ApplicationException: Error loading settings file
System.ApplicationException: Error loading settings file ---> System.Xml.XmlException: Root element is missing.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
at System.Xml.XmlDocument.Load(XmlReader reader)
at System.Xml.XmlDocument.Load(String filename)
at NUnit.Engine.Internal.SettingsStore.LoadSettings()
--- End of inner exception stack trace ---
at NUnit.Engine.Internal.SettingsStore.LoadSettings()
at NUnit.Engine.Services.SettingsService.StartService()
at NUnit.Engine.Services.ServiceManager.StartServices()
at NUnit.Engine.TestEngine.Initialize()
at NUnit.Engine.TestEngine.GetRunner(TestPackage package)
at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.<>c__DisplayClass1.<RunTests>b__0()
at JetBrains.ReSharper.UnitTestRunner.nUnit30.BuiltInNUnitRunner.WithExtensiveErrorHandling(IRemoteTaskServer server, Action action)
Tenga en cuenta que esta NO es la aplicación del proyecto de prueba.config!
Un rápido googleamiento identificó el siguiente archivo como el culpable:
%LOCALAPPDATA%/NUnit/Nunit30Settings.xml
Existía, pero estaba vacío. Eliminarlo y reiniciar Visual Studio resolvió el problema.
(Usando Visual Studio Professional 2017 v15.3.5 y ReSharper 2017.2.1).
Para mí, simplemente limpiar y reconstruir la solución lo solucionó.
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ó.
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
)
Tuve el mismo error en VS2013 y Resharper9. El problema fue porque olvidé anotar el método de prueba con [Test] :) Espero que esto ayude a cualquiera
Tuve el mismo problema con resharper y corregí este error cambiando una opción:
Resharper => Options => Tools => Unit Testing
Solo tuve que desmarcar la opción "ensambles Shadow-copy probados"
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.
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.
Tuve exactamente el mismo problema y nada me ayudó.
eventualmente vi que tenía un desajuste en mis espacios de nombres del proyecto de unidad y el proyecto de prueba de unidad.
El espacio de nombres de mi proyecto de unidad es unit.project y el proyecto de prueba se llamó unit.project.tests, pero el espacio de nombres predeterminado de la prueba era el mismo que el de la unidad, ambos eran unit.project.
Una vez que he actualizado los espacios de nombres para que sean diferentes (un espacio de nombres para cada proyecto) ¡todo funcionó!
Yo tuve un problema similar. VS 2010, c # CLR 2 Nunit 2.5.7, solo compilar> solución limpia de VS ayudó a resolver este problema