2010-12-22 26 views
5

Hola chicos mi pregunta es simple n sencilla. Tengo este escenario.Prueba de la herencia de prueba

Tengo (Prueba-A) prueba de test totalmente anotada en un proyecto. Nota: esta prueba se ejecuta con éxito. Luego tengo otra prueba de prueba (Prueba-B) en un proyecto diferente que extiende (Prueba-A). Este nuevo (Test-B) no tiene anotaciones ya que extiende una clase que sí lo hace. Mi expectativa es que cuando ejecute esta prueba (Prueba-B), debería ejecutar los casos de prueba en la superclase además del caso de prueba definido dentro de él, que es el modo orientado a objetos. El problema es que testng ni siquiera lo reconoce como prueba ya que no hay ninguna anotación dentro de él. Supongo que el proceso de anotación testng no considera la anotación de la superclase.

+0

Me acabo de dar cuenta de que todo lo que se requiere para ejecutar todas las pruebas en la superclase es agregar una única prueba anotada en la clase hija que llama a un caso de prueba en la superclase. Esto hace que se ejecute todo el caso de prueba en la superclase. ¿extraño? – Afamee

+0

otra actualización. Cualquier prueba en la clase infantil es suficiente para activar todas las pruebas en superclase. No tiene que ser una prueba que llame a la prueba de superclase. – Afamee

+0

debe enviar la respuesta a su propia pregunta. De lo contrario, es "sin respuesta" y desperdicia el tiempo de aquellos que quieren responder preguntas sin respuesta. – hidralisk

Respuesta

2

(Nota, usando el viejo y simple JUnit 4 aquí, no TestNG)

Eclipse hace aparecer para buscar la jerarquía de clases de anotaciones @test si la clase principal se encuentra en el mismo proyecto. El siguiente ejemplo se trabajó para mí:

public class A { 
    @Test public void a() { 

    } 
} 

public class B extends A { 

} 

Cuando se ejecuta B como una prueba JUnit, ejecuta a() y pases.

Luego creé dos proyectos de Eclipse, Prueba A y Prueba B. Realicé el proyecto B para el proyecto A y repetí los pasos anteriores como lo hizo, con la clase A en el proyecto A, etc. Ahora, ejecuto la clase B como una unidad la prueba dice 'No se encontraron pruebas de JUnit'. Luego, agregar un @Test a la clase B resuelve el problema.

Por lo tanto, podemos deducir que Eclipse no sale de los límites del proyecto actual cuando busca casos de prueba. Creo que su solución para agregar un solo @Test a su clase es razonable, aunque no estoy seguro de por qué querría hacer esto.

Cuestiones relacionadas