Перейти к содержимому

Аудит и оптимизация QA-процессов
онлайн, начало 24 декабря
Автоматизация функционального тестирования
онлайн, начало 27 ноября
Логи как инструмент тестировщика
онлайн, начало 30 ноября
Тестирование REST API
онлайн, начало 30 ноября
Фотография

Нужна помощь по BeforeClass TestNg dataProvider

BeforeClass TestNg dataProvider

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1 Drenjy

Drenjy

    Новый участник

  • Members
  • Pip
  • 12 сообщений
  • ФИО:Самойлов Андрей Евгеньевич


Отправлено 04 июля 2017 - 19:28

 

Привет, форумчане. Снова нужна ваша помощь!.

 

Есть тесты, для которых использую дата провайдер, получающий данные из Json файла.

Хотелось бы перед начало класса, запускать проверку на существование данных.

Вот как у меня построено.

public class DocumentTests extends TestBase {
    private final BillData billData;
    AddCustomerBill addCustomerBill = new AddCustomerBill();

    @Factory(dataProviderClass = DataProviderForTests.class, dataProvider = "validBillsFromJson")
    public DocumentTests(BillData billData){
        this.billData=billData;
    }
    @BeforeClass
    public void checkBillForUser(BillData billData) throws InterruptedException {
        app.getUserHelper().loginAs(USER);
        if (app.getUserHelper().userHasBill(billData.getNumber() + " " + billData.getCompanyname())) {
            return;
        }
        app.getUserHelper().logout();
        addCustomerBill.addPersonalAccount(billData);
    }

    @Test(dataProviderClass = DataProviderForTests.class, dataProvider = "validBillsFromJson")
    public void selectBill(BillData billData) {
            app.getUserHelper().loginAs(USER);
            app.getSubdivisionPage().openSubdivisionWin();
            app.getSubdivisionPage().searchBill(billData.getNumber());
            app.getSubdivisionPage().selectSubdivisionBy(billData.getNumber() + " " + billData.getCompanyname());
        if (app.getUserHelper().userHasBill(billData.getNumber() + " " + billData.getCompanyname()) == false) {
            System.out.println("Счёт не найден: " + billData);
        }
    }

    @Description("Проверяем наличие элементов на странице")
    @Test(dataProviderClass = DataProviderForTests.class, dataProvider = "validBillsFromJson")
    public void assertOneTimeOrderPageElements(BillData billData) {
        app.getUserHelper().loginAs(USER);
        selectBill(billData);
            app.getSubdivisionPage().closeWindow();
            app.getNavigationHelper().toDocuments();
.....
}

@BeforeTest как я понимаю, не позволяет использовать параметры.

@Factory отрабатывает нормально, а после всё падает с ошибкой:

org.testng.TestNGException: 
Can inject only one of <ITestContext, XmlTest> into a BeforeClass annotated checkBillForUser.

Подскажите пожалуйста, какое решение более верное?


  • 0

#2 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 05 июля 2017 - 07:41

Если конструктор отрабатывает, что мешает просто использовать this.billData в методе?
  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




Темы с аналогичным тегами BeforeClass, TestNg, dataProvider

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале