Отчеты JUnit - описание методов тестирования - PullRequest
24 голосов
/ 22 апреля 2009

Я пытаюсь выяснить, есть ли способ включить «описательный текст» в мои отчеты Junit с помощью Javadocs. JUnit 4, кажется, не поддерживает атрибут 'description' для аннотации @Test, как это делает TestNG.

Пока что из того, что я исследовал, есть только один инструмент под названием javadoc-junit (http://javadoc -junit.sourceforge.net / ). Однако я не мог заставить это работать, так как это кажется несовместимым с Junit 4.

То, что я хочу, это какой-то способ предоставить предложение или два текста с каждым моим методом тестирования в отчете JUnit. JavaDoc не годится, поскольку целевая аудитория должна будет переключаться между JavaDoc и отчетом Junit, чтобы увидеть документацию и / или статистику теста.

Кто-нибудь знает что-нибудь еще, что я мог бы использовать с минимальными усилиями?

Лучший, Ray J

Ответы [ 4 ]

9 голосов
/ 21 апреля 2016

В JUnit 5 есть способ аннотировать каждый тест с помощью @DisplayName. Объявленные тестовые классы могут иметь text, special characters и emojis.

Заявленный текст в каждом тесте виден test runners и test reports.


Javadoc говорит:

public @interface DisplayName

@ DisplayName используется для объявления настраиваемого отображаемого имени для аннотированного класса теста или метода теста. Отображаемые имена обычно используются для отчетов по тестам в IDE и инструментах сборки и могут содержать пробелы, специальные символы и даже смайлики.

И Руководство пользователя :

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() {
    }
}
8 голосов
/ 09 июня 2014

Существует также довольно недавнее решение под названием Allure . Это отчет о выполнении теста на основе Java, основанный в основном на добавлении дополнительных аннотаций к коду. Существующие аннотации включают в себя:

  • Пользовательское описание: @ Описание («Классный тест»)
  • группировка по функциям или историям: @ Особенности ({"feature1", "feature2"}) , @ Stories ({"story1", "story2"})
  • методы маркировки, выполняемые внутри тестового примера, в виде шагов: @ Step (работает даже для частных методов)
  • вложения: @ Вложение (name = "Скриншот страницы", type = "image / png")

См. Их wiki и пример проекта для получения более подробной информации.

6 голосов
/ 22 апреля 2009

Я не помещаю javadocs в тесты JUnit. Я обычно делаю название метода достаточно наглядным, чтобы оно было лучше или лучше любого комментария, который я мог придумать.

0 голосов
/ 24 апреля 2009

Я могу себе представить, что Framework для интегрированных тестов (FIT) будет хорошим и чистым решением.

Что делает FIT?
FIT - это фреймворк, позволяющий писать тесты через таблицу в документе Word, вики-таблицу или HTML-таблицу.
FIT игнорирует каждый символ за пределами таблицы и позволяет вводить документацию, описание, требования и т. Д.

Как выглядит одна из этих таблиц?

Представьте себе функцию MyMath.square(int), которая возводит в квадрат ее входной параметр. Вы должны построить так называемый Fixture, будучи адаптером между вашей MyMath и следующей таблицей:

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

Первый столбец описывает входные значения, второй - ожидаемый результат. Если он не равен, это поле помечается красным.

Как выглядит прибор?
Для данного примера это будет правильное приспособление:

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);
    }
}

Возможно, вы можете использовать FIT для своих требований.
Не стесняйтесь комментировать мой ответ или редактировать свой вопрос для получения дополнительной информации!

...