2015-06-22 6 views
1

До сих пор рядом с Junit и Jenkins я использовал log4j для получения текстовых отчетов по тестовым примерам, но теперь я хочу использовать Allure для получения более ясных и более прозрачных отчетов из моих тестов на селен. Я использую проект maven, где один тестовый пример является классом java, и состоит из шагов, каждый из которых также является классом java. это выглядит так:Как организовать набор тестов junit с использованием Allure

public class FirstTestCase() { 
    new Step1(driver).run(); 
    new Step2(driver).run(); 
    new Step3(driver).run(); 
} 

public class SecondTestCase() { 
    … second test case steps ... 
} 

На каждом шагу - «запустить» - содержит код селена.

Индивидуальные тестовые чехлы сгруппированы в более крупные комплекты. Например:

@RunWith(Suite.class) 
@Suite.SuiteClasses({ 
    FirstTestCase.class, 
    SecondTestCase.class 
}) 
public class SetOfTests {} 

Наконец, у меня есть один главный класс (который называется «TestRunner»), в котором активируются соответствующие наборы. Это выглядит следующим образом:

public class TestRunner { 
    @Test 
    public void main() { 
     Result result = JUnitCore.runClasses(
     SetOfTests.class 
    ); 

Таким образом, иерархия классов в моем проекте выглядит следующим образом:

TestRunner |- 
    SetOfTests |- 
     FirstTestCase |- 
         |- Step 1 
         |- Step 2 
         |- .... 
     SecondTestCase |- 
         |- Step 1 
         |-Step 2 
         |- .... 

Теперь мой вопрос: Как будет лучший подход, чтобы добавить Allure аннотаций (например, @Stories , @ Features, @Steps ...), что после создания Jenkins, когда отчет будет сгенерирован, результат будет представлен в виде иерархии выше

Обратите внимание, что jenkins настроен, работает и также генерирует отчет, но не такой форму, как я хочу.

Просто мне нужно знать, в простой форме, в которой тест и на каком шаге произошла ошибка

ответ

0

Если вы посмотрите на Allure XSD file вы увидите, что в настоящее время (1.4.x серии) мы поддерживаем следующую структуру:

TestSuite| 
     TestCase| 
        Step| 
         Substep| 
          ... 

Таким образом, набор тестов может содержать набор тестовых примеров (вложенные тестовые примеры не поддерживаются), и каждый тестовый пример может содержать иерархию шагов с неограниченной глубиной. Я бы использовал пользовательский JUnit-адаптер для вашего случая - это так же просто, как создание одного Java-класса, такого как following, который реализует интерфейс JUnit RunListener.

+0

благодарит за ваш ответ. Я посмотрю на это в ближайшем будущем – martest

Смежные вопросы