Подтвердить что ты не робот

Отчеты JUnit - описание метода тестирования

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

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

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

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

Бест, Ray J

4b9b3361

Ответ 1

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

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

Смотрите пример wiki и для более подробной информации.

Ответ 2

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

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


Javadoc говорит:

public @interface DisplayName

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

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

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() {
    }
}

Ответ 3

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

Ответ 4

Я мог предположить, что Framework for Integrated Tests (FIT) будет хорошим и чистым решением.

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

Как выглядят эти таблицы?

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

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

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

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

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 для своих требований.
Не стесняйтесь комментировать мой ответ или редактировать свой вопрос для получения дополнительной информации!