2010-11-04 16 views
34

¿Hay alguna manera de que finalice una prueba de nunidad y decirle al corredor de prueba que se debe considerar omitida o ignorada, en lugar de tener éxito o no?omitir programáticamente una prueba de nunidad

Mi motivación para esto es que tengo algunas pruebas que no se aplican en ciertas circunstancias, pero esto no se puede determinar hasta que la prueba (o tal vez el dispositivo) comience a funcionar.

Obviamente, en estas circunstancias, podría regresar de la prueba y permitir que tenga éxito, pero (a) esto parece incorrecto y (b) me gustaría saber que las pruebas se han omitido.

Conozco el atributo [Ignorar], pero está compilado. Estoy buscando un equivalente programático en tiempo de ejecución. Algo así como:

if (testNotApplicable) 
    throw new NUnit.Framework.IgnoreTest("Not applicable"); 

¿O omite programáticamente una prueba incorrecta? Si es así, ¿qué debería estar haciendo?

+0

interesante, me gustaría ver algunos comentarios sobre esto! –

Respuesta

35
Assert.Ignore(); 

es específicamente lo que está pidiendo, aunque hay también:

Assert.Inconclusive(); 
+2

¡Gracias! No puedo creer que me haya perdido Assert.Ignore, pero es justo lo que necesito. Parece que Assert.Inconclusive se introdujo en nunit 2.5 y, como sigo usando 2.4.8, al menos tengo una excusa para no saber sobre eso ... –

0

Estoy teniendo un, TestInitialize método TestInit() donde hay una condición como:

//This flag is the most important.False means we want to just ignore that tests 
    if (!RunFullTests) 
     Assert.Inconclusive(); 

RunFullTests es una variable booleana global ubicada en una clase constante. Si establecemos esto en falso, se ignorará toda la clase de prueba y todas las pruebas bajo esta clase serán ignoradas.

Lo uso cuando hay pruebas de integración.

Cuestiones relacionadas