Отчеты Cucumber перезаписываются при выполнении нового файла функции

Я пишу набор тестов и столкнулся с проблемой. Я использую огурец и определил несколько файлов функций. Когда я запускаю тестовый пакет, прогресс (отчет 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 {

}

Сообщите, что можно сделать, чтобы получить сводный отчет.


person Himanshu Bhardwaj    schedule 02.01.2017    source источник
comment
все у тебя классы люкс, правда? так что отчет может быть сгенерирован для 1 пакета за раз.   -  person Avinash Anand    schedule 03.01.2017
comment
Все объединили в единый комплекс и получили централизованный отчет.   -  person Himanshu Bhardwaj    schedule 04.01.2017
comment
Да, потому что каждый пакет RunWith Means отдельный. Таким образом, для создания отчета можно использовать только 1 бегуна за раз. Пожалуйста, предоставьте свой ответ ниже, чтобы помочь кому-то еще, кто столкнется с такой же проблемой в будущем.   -  person Avinash Anand    schedule 04.01.2017


Ответы (2)


Немного поздно, но я публикую решение здесь. В Cucumber есть плагин 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

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

person Himanshu Bhardwaj    schedule 16.01.2017

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

person Avinash Anand    schedule 07.01.2017
comment
Я согласен с утверждением о Suite. Но не соглашайтесь с тем, что это единственный способ получить центральные отчеты для того же, я обновлю ответ на это сегодня. - person Himanshu Bhardwaj; 10.01.2017