Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

315
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!