Есть ли способ создать один отчет Cucumber для нескольких файлов пространственных объектов, запускаемых многими классами Runner? - PullRequest
0 голосов
/ 25 апреля 2018

Я запускаю функции Cucumber с использованием AbstractTestNGCucumberTests.

Каждый файл объектов имеет один соответствующий класс Runner, который расширяет класс AbstractTestNGCucumberTests.

public class LoginRunner extends AbstractTestNGCucumberTests {
}

public class CreateAccountRunner extends AbstractTestNGCucumberTests {
}

Я также использую прослушиватель отчетов Cucumber, который является реализацией ISuiteListener.По окончании Cucumber ReportBuilder сгенерирует отчеты.

public class CucumberReporting implements ISuiteListener{//}

Мой TestNG.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
    <listeners>
        <listener
                class-name="listeners.reportlistener.CucumberReport" />
    </listeners>
    <test name="Test - 1">
        <classes>
            <class name="testrunner.LoginRunner" />
            <class name="testrunner.CreateAccountRunner" />
        </classes>
    </test>
</suite>

Как видите, есть два класса бегунов.Когда я запускаю testng.xml, он выполняет один класс бегуна и затем переходит к следующему.

В этой ситуации отчет об огурцах генерирует только файл объектов последнего запуска.Другими словами, отчеты перезаписываются.И каждый прогон xml заканчивается одним единственным отчетом HTML.

Как я могу сгенерировать один единственный отчет, который будет иметь результаты для обоих классов бегунов?

Ответы [ 4 ]

0 голосов
/ 10 октября 2018

Есть один способ получить один отчет. Поместите все файлы бегуна в пакет и используйте это имя пакета в файле testNG.xml для выполнения теста. Я сделал то же самое, что и ниже.

Вам просто нужно дать имя вашего пакета, например: package name = "testRunner" в textNG.xml, и запустить свой пакет, щелкнув правой кнопкой мыши файл testNG.xml и выбрать запуск TestNG test из Eclipse.

Структура объекта, демонстрирующая пакет testrunner

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="BDD Test Suite" verbose="1" parallel="classes" thread-count="2" configfailurepolicy="continue">
        <listeners>       
            <listener class-name="managers.LocalWebDriverListener" />
        </listeners>

         <test name="Chrome Test">
            <parameter name="browserName" value="chrome"/>
            <packages>
                <package name="testRunner"/>
             </packages>
         </test>

       <test name="Firefox Test">
         <parameter name="browserName" value="firefox"/>
         <packages>
            <package name="testRunner"/>
         </packages>     
        </test>

    </suite>
0 голосов
/ 27 апреля 2018

Лучший вариант - создать новый класс Runner, который будет печатать все данные.Пример:

@CucumberOptions(
        format = {...},
        features = {"src/test/resource"} //All the feature files must be present here.
        )
public class CucumberTagRunnerTest {

}

Более того, для выборочного отчета вы можете использовать @tag в файлах объектов и печатать результаты, относящиеся только к тестам, которые относятся только к @tag.@tag - может использоваться отдельно для полного файла функций или некоторых тестовых случаев.

@CucumberOptions(
        format = {...},
        features = {"src/test/resource"},
        tags = {"@tag"} //Like this.
        )
public class CucumberTagRunnerTest {

}

Во всех файлах функций:

@tag
Feature: Proof of Concept
  I want to use this template for my feature file
  ...

Надеюсь, это поможет.

0 голосов
/ 03 мая 2018

Есть 2 способа подойти к нему.

Сначала запустите файлы объектов, используя конфигурацию xml пакета testng, а затем используйте отчет testng.Вы можете настроить этот отчет в соответствии с вашими потребностями.Используйте интерфейс интерфейса IReporter testNG.

Второй способ, когда вы определяете формат в опциях, дают разные папки для разных функций.Затем напишите утилиту для объединения всех отчетов в один файл.

0 голосов
/ 25 апреля 2018

Я думаю, вам нужно объединить файлы отчетов XML. Сохраните каждый файл с уникальным именем, а затем объедините его. Это может помочь:

Нажмите

...