¿Es posible definir un filtro personalizado para que NUnit solo ejecute pruebas específicas? Tengo muchas de mis pruebas de Nunit marcadas con un atributo personalizado "BugId". ¿Es posible escribir un filtro para poder pasar un número y solo ejecutar las pruebas con ese atributo y número? Si es así, muestre una maqueta o código real.¿Son posibles los filtros personalizados en NUnit?
Respuesta
Comenzando con NUnit 2.4.6, los atributos NUnit no están sellados y las subclases serán reconocidas como sus clases base. Por lo tanto:
public class BugId : TestAttribute
{
public BugId(int bugNumber) : base("Test for Bug #" + bugNumber) { }
}
[BugId(1)]
public void Test() {}
se puede llamar a la línea de comandos de la siguiente manera:
nunit-consola/include = "Prueba de Error # 1"
¿Los filtros necesitan usar su atributo personalizado, o podría usar un NUnit Category? Algo así como
[Test]
[Category("BugId-12234")]
public void Test()
{
....
}
... y luego usar la bandera /include=STR
:
nunit-console /include=BugId-12234 ...
? Recomendaría subclasificar Categoría para hacer su atributo personalizado, pero no creo que eso le permita agregar un parámetro conmutable a su atributo ...
Pensé que tenía una solución elegante para esto, pero, ay, sí no funciona como esperaba Esperaba (y quizás puedas con más esfuerzo) derivar de la clase IgnoreAttribute. Pensé que esto funcionaría:
[Test, BugId("411")]
public void TestMethod()
{
// your test
}
public class BugIdAttribute : IgnoreAttribute
{
private string id;
public BugIdAttribute(string id) : base("Ignored because it is bug #" + id)
{
this.id = id;
}
}
Pero parece que hay más que eso. Perdón por publicar una respuesta que no es en realidad una respuesta, pero creo que es un buen trampolín para alguien que sabe más sobre los aspectos internos de nunit que yo.
No quiero ignorar la prueba. Quiero ser capaz de ver que el error ha sido resuelto y ejecutar todas las pruebas asociadas con ese error. –
- 1. ¿Son posibles los operadores variables?
- 2. ¿Son posibles los typedef condicionales en C++?
- 3. ¿Qué son los filtros de intención exactamente?
- 4. ¿Son posibles los servicios web RESTful asíncronos?
- 5. número de posibles combinaciones son posibles
- 6. ¿Pueden los filtros personalizados de Django acceder a request.user?
- 7. filtros personalizados/validadores de Zend Framework
- 8. ¿Qué son los filtros de intención en Android?
- 9. ¿Son posibles los ataques de inyección SQL en JPA?
- 10. ¿Son los atributos personalizados para los Enum peligrosos?
- 11. ¿Cuántos UID son posibles en Android?
- 12. son rangos posibles con enumeraciones?
- 13. ¿Son posibles las Listas bidimensionales en C#?
- 14. son para bucles posibles en babas?
- 15. ¿Son posibles múltiples auto tipos?
- 16. Creando filtros personalizados para list_filter en Django Admin
- 17. ¿Qué son los filtros High-Pass y Low-Pass?
- 18. filtros personalizados Django no trabajan en plantillas incluidas
- 19. ¿Cómo agregar múltiples filtros personalizados en Spring Security 3?
- 20. ¿Son posibles matrices inmutables en .NET?
- 21. ¿Son posibles las constantes privadas en PHP?
- 22. ¿Cuáles son los posibles casos de uso de AOP?
- 23. ¿Cuáles son todos los valores posibles para SQLException.getSQLState?
- 24. jQuery son posibles excepciones a global $ .ajaxSetup()?
- 25. ¿Son posibles las plantillas de datos recursivas?
- 26. ¿Cuáles son los riesgos concretos de usar atributos HTML personalizados?
- 27. ¿Pueden los encabezados de correo electrónico personalizados activar filtros de correo no deseado?
- 28. Filtros de GlobalFilterCollection ejecutados antes de los filtros de ControllerInstanceFilterProvider
- 29. Información sobre herramientas en archivos PDF: ¿son posibles?
- 30. ¿Son posibles las matrices basadas en la pila en C#?
Después de mirar el código de NUnit, creo que esto es lo mejor que podemos hacer sin modificar NUnit. Gracias por tu respuesta. –