Tengo una biblioteca de clase nunit que contiene casos de prueba. Deseo obtener programáticamente una lista de todas las pruebas en la biblioteca, principalmente los nombres de prueba y sus identificadores de prueba. Aquí es lo que tengo hasta ahora:Obtenga la lista de pruebas en la biblioteca nunit programáticamente sin tener que ejecutar las pruebas
var runner = new NUnit.Core.RemoteTestRunner();
runner.Load(new NUnit.Core.TestPackage(Request.PhysicalApplicationPath + "bin\\SystemTest.dll"));
var tests = new List<NUnit.Core.TestResult>();
foreach (NUnit.Core.TestResult result in runner.TestResult.Results)
{
tests.Add(result);
}
La cuestión es que runner.TestResult es nulo hasta que realmente ejecuta las pruebas. Obviamente no quiero ejecutar las pruebas en este momento, solo quiero obtener una lista de las pruebas que están en la biblioteca. Después de eso, daré a los usuarios la posibilidad de seleccionar una prueba y ejecutarla individualmente, pasando la identificación de la prueba a la instancia de RemoteTestRunner.
Entonces, ¿cómo puedo obtener la lista de pruebas sin ejecutarlas todas?
+1, sin embargo hay un giro: la TestCaseAttribute se puede parametrizar un método de ensayo, convirtiéndola así en múltiples pruebas (lógicas). Nada que no pueda ser manejado por la reflexión, pero algo a tener en cuenta. –
@ Christian.K Buen punto, para que el OP tenga en cuenta. –
Estaba pensando en hacer esto originalmente, ya que me daría los nombres de prueba (función), sin embargo, no me daría los ID de prueba. Siempre que pueda hacer una ejecución RemoteTestRunner filtrada por el nombre de la prueba en lugar de la identificación de la prueba, entonces esto debería funcionar bien, lo verificará. – Justin