4

Я пишу тестовый пакет и столкнулся с проблемой. Я использую огурец и определил несколько файлов функций. Когда я запускаю тестовый пакет, прогресс (html-отчет и формат json) одного файла функции переписывается при следующем запуске следующего файла.Отчет о огурцах перезаписывается при выполнении нового файла функции

У меня есть несколько классов тестов, которые определяют эти функциональные файлы. Я пытаюсь найти способ, которым я могу получить один html-отчет для всех прогонов функций, чтобы дать консолидированное представление.

файлы тестовых образцов для исх:

@CucumberOptions(plugin = { "pretty", "html:target/report/html", 
"json:target/report/json/result.json" }) 
public class BaseFeature { 

} 

@RunWith(Cucumber.class) 
@CucumberOptions(features = "classpath:test/feature/rest/query.feature" 
, monochrome = true 
, glue={"a.b.c.rest"}) 
public class RunTest1 extends BaseFeature { 

} 

@RunWith(Cucumber.class) 
@CucumberOptions(features="classpath:test/feature/soap/book.feature" 
, monochrome = true 
, glue="a.b.c.soap") 
public class RunTest2 extends BaseFeature { 

} 

Пусть знают, что можно сделать, чтобы иметь сводный отчет.

+1

все ваши классы - апартаменты, не так ли? поэтому отчет может быть создан для 1 пакета за раз. –

+0

Объединил все в одном номере и получил центральный отчет. –

+0

Да, потому что каждый RunWith имеет отдельный набор. Таким образом, только один бегун может использоваться одновременно для создания отчета. Просьба представить ваш ответ ниже, чтобы помочь кому-то еще столкнуться с такой же проблемой в будущем. –

ответ

3

Немного поздно, но, как указано, я отправляю решение здесь. У огурца есть плагин maven, который можно использовать для создания отчетов.

<groupId>net.masterthought</groupId> 
<artifactId>maven-cucumber-reporting</artifactId> 
<version>${maven-cucumber-reporting.version}</version> 

версия плагина в настоящее время: 3.3.0

Этот плагин предоставляет некоторые полезные параметры конфигурации, что позволяет связать несколько протоколов испытаний в формате JSon.

Реализация выборки выглядит следующим образом:

<plugins> ... 

    <plugin> 
    <groupId>net.masterthought</groupId> 
    <artifactId>maven-cucumber-reporting</artifactId> 
    <version>${maven-cucumber-reporting.version}</version> 
    <executions> 
     <execution> 
     <id>execution</id> 
     <phase>verify</phase> 
     <goals> 
      <goal>generate</goal> 
     </goals> 
     <configuration> 
      <projectName>test-report</projectName> 
      <outputDirectory>${project.build.directory}/bdd/report</outputDirectory> 
      <cucumberOutput>${project.build.directory}/report/json</cucumberOutput> 
      <parallelTesting>false</parallelTesting> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

</plugins> 

Конфигурация для использования:

cucumberOutput: Path to where all the json reports are kept after the cucumber run OutputDirectory: Path to where the html report will be generated

Вот и получайте удовольствие.

1

Как я уже сказал в комментарии выше, объедините свой пакет в 1, после чего вы получите 1 отчет. Поскольку каждый RunWith означает один набор, поэтому в основном используйте только 1 набор, чтобы получить 1 отчет.

+1

Я согласен с утверждением о Suite. Но не соглашайтесь с тем, что это единственный способ получить центральный отчет за то же самое, я обновлю ответ на этот вопрос сегодня. –

+0

Готово ответ добавлен. –