2009-04-21 14 views
23

Estoy tratando de ver si hay una forma de incluir "texto descriptivo" en mis informes junit a través de javadocs. JUnit 4 no parece soportar el atributo 'description' para la anotación @Test como TestNG.JUnit Reports - Descripciones de los métodos de prueba

Tan lejos de lo que he investigado hay una sola herramienta llamada javadoc-junit (http://javadoc-junit.sourceforge.net/). Sin embargo, no pude hacer que esto funcione, ya que parece ser incompatible con Junit 4.

Lo que quiero es una forma de proporcionar una o dos frases de texto con cada uno de mis métodos de prueba en el informe JUnit. JavaDoc no es bueno ya que el público objetivo tendrá que cambiar entre JavaDoc y el Informe de Junit para ver la documentación y/o las estadísticas de prueba.

¿Alguien sabe de otra cosa que pueda usar con un mínimo esfuerzo?

mejor, Ray J

+1

Buena pregunta. También estaría interesado en una solución para eso. – martin

+0

5 años después, el mismo problema. :) – mario

+0

Junit 5 admitirá nombres de prueba personalizados: http://junit.org/junit5/docs/current/user-guide/#custom-names – gontard

Respuesta

6

no pongo javadocs en las pruebas JUnit. Normalmente hago que el nombre del método sea lo suficientemente descriptivo para que sea tan bueno o mejor que cualquier comentario que se me ocurra.

-1

Me imagino que la Framework for Integrated Tests (FIT) sería una solución agradable y limpia.

¿Qué hace FIT?
FIT es un marco que permite escribir pruebas a través de una tabla en un documento de Word, una tabla wiki o una tabla html.
FIT ignora todos los caracteres que se encuentran fuera de una tabla y le permite ingresar documentación, descripción, requisitos, etc.

¿Cómo se ve en estas tablas?

Imagine una función MyMath.square(int) que cuadra su parámetro de entrada. Usted tiene que construir un denominado accesorio, siendo un adaptador entre el y la siguiente tabla MyMath:

class.with.Fixture.Square 
x square() 
2 4 
5 25 

La primera columna describe los valores de entrada, el segundo el resultado esperado. Si no es igual, este campo está marcado como rojo.

¿Cómo es un accesorio?
Para el ejemplo dado, este sería el accesorio correcto:

package class.with.Fixture // Must be the same as in the fist row of the table 

public class Square extends Fixture { 
    public int x; // Must be the same as in the second row 
    public int square() { // Must be the same as in the second row 
     return MyMath.square(x); 
    } 
} 

Probablemente, puede utilizar FIT para sus necesidades.
No dude en comentar mi respuesta o editar su pregunta para más información!

+0

No he encontrado cómo responde a su pregunta de agregar un mensaje descriptivo para su método de prueba. ¿FIT proporciona esta característica? – hakish

+0

No directamente, pero puede hacer una buena documentación en su documento de Word, qué hace y qué debe hacer el método de prueba. – guerda

8

También hay una solución bastante reciente llamada Allure. Es un informe de ejecución de prueba basado en Java que se basa principalmente en agregar anotaciones suplementarias al código.anotaciones existentes incluyen:

  • descripción personalizada: @description ("A prueba de frío")
  • agrupación por funciones o historias: @Features ({ "feature1", "característica2"}), @Stories ({ "story1", "Story2"})
  • marcando métodos ejecutados en el interior de casos de prueba como pasos: @Step (funciona incluso para los métodos privados)
  • adjuntos: @At tachment (name = "Página de pantalla", type = "image/png")

ver a su wiki y example project para más detalles.

8

En JUnit 5 hay una manera de anotar cada prueba con un @DisplayName. Las clases de prueba declaradas pueden tener text, special characters y emojis.

El texto declarado en cada prueba es visible por test runners y test reports.


El Javadoc dice:

public @interface DisplayName

@DisplayName se utiliza para declarar un nombre de visualización personalizado para la clase de prueba anotada o método de ensayo. Los nombres para mostrar generalmente se utilizan para informes de prueba en IDE y herramientas de compilación y pueden contener espacios, caracteres especiales e incluso emoji.

Y el User Guide:

import org.junit.gen5.api.DisplayName; 
import org.junit.gen5.api.Test; 

@DisplayName("A special test case") 
class DisplayNameDemo { 

    @Test 
    @DisplayName("Custom test name containing spaces") 
    void testWithDisplayNameContainingSpaces() { 
    } 

    @Test 
    @DisplayName("╯°□°)╯") 
    void testWithDisplayNameContainingSpecialCharacters() { 
    } 

    @Test 
    @DisplayName("") 
    void testWithDisplayNameContainingEmoji() { 
    } 
} 
+0

Gracias pero JUnit 5 es demasiado nuevo para ser utilizado en la producción. – Akceptor

+1

@Akceptor Eso es verdad. Pero estaba pensando, la pregunta es de 7 años de edad, tal vez en 7 años esta podría ser la respuesta correcta: D – Patrick

+1

Otorgado. Solo porque parece que JUnit 5 es la única solución disponible – Akceptor

Cuestiones relacionadas