Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

309
Vistas
Ejecución de pruebas NUnit desde el código (programadamente)

Quiero ejecutar pruebas NUnit desde mi código. Para ser más específicos, tengo una API web (.net core) que recibe un conjunto de nombres de prueba que deben ejecutarse y, después de la ejecución, el punto final devolverá un conjunto de resultados.

Las pruebas están en otro .dll (otro proyecto que usa Microsoft.Playwright y Serilog para iniciar sesión en ElasticSearch; también es .net core, pero tiene clases marcadas como [TextFixutre]).

Al principio, solo quería verificar si RemoteTestRunner está cargando todas mis pruebas. Aquí está el código de demostración:

 [HttpPost] [Route("/api/TestSuiteRun/Run")] public IActionResult RunTestSuite([FromBody] AutomationAPI.Models.TestSuite testSuite) { try { CoreExtensions.Host.InitializeService(); TestSuiteBuilder builder = new TestSuiteBuilder(); TestPackage testPackage = new TestPackage(@"C:\Desktop\Automation-v2\Automation-v2\bin\Debug\netcoreapp3.1\Automation-v2.dll"); RemoteTestRunner remoteTestRunner = new RemoteTestRunner(); remoteTestRunner.Load(testPackage); NUnit.Core.TestSuite suite = builder.Build(testPackage); NUnit.Core.TestSuite test = suite.Tests[0] as NUnit.Core.TestSuite; var numberOfTests = ((TestFixture)test.Tests[0]).TestCount; foreach (TestMethod t in ((TestFixture)test.Tests[0]).Tests) { Console.WriteLine(t.TestName.Name); } return StatusCode(200); } catch(Exception ex) { Console.WriteLine(ex.Message); return StatusCode(500); } }

pero termino con la siguiente excepción en remoteTestRunner.Load(testPackage) :

 "Could not load type 'System.Runtime.Remoting.Messaging.ILogicalThreadAffinative' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'."

y no sé por qué está pasando esto. ¿Algunas ideas?

En cuanto a la segunda pregunta que tengo, ¿es posible pasar TestCaseSource a la prueba con RemoteTestRunner o debe escribirse en el .dll explícitamente (antes de cargar en RemoteTestRunner ) así:

 [Test, TestCaseSource(typeof(UserProvider), "ProvideUsers")] public async Task ExportPPTTimeTestAsync(User currentUser) {...
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Supongo que encontró algunas instrucciones para ejecutar NUnit mediante programación en la web, tal vez incluso algunas que escribí hace muchos años. Siempre debe mirar con recelo los artículos más antiguos.

En este caso, sabemos que está utilizando RemoteTestRunner , una clase del núcleo de NUnit V2, que es un código heredado u obsoleto según cómo lo mire. El problema con ILogicalThreadAffinitive es solo la punta del iceberg. El paquete nunit.core nunca ejecutará el código NUnit3 moderno y ni siquiera puede cargar un ensamblado .NET Core.

Si desea ejecutar código escrito en las versiones actuales de NUnit bajo .NET Core en la web, su mejor opción en este momento es llamar a la API de NUnit Framework directamente desde un controlador que usted mismo crea. El código fuente del controlador incorporado en la última versión del proyecto NUnit3 Console en GitHub le dará una idea de cómo se puede hacer.

Desafortunadamente, un proyecto de este tipo es un gran problema, por lo que no puedo publicar un código de muestra aquí. Si decide probarlo, comience examinando el código fuente de los controladores del marco NUnit3, que forman parte del proyecto de ejecución de la consola nunit3 en GitHub. Publique preguntas específicas si tiene problemas.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda