Привет, форумчане. Снова нужна ваша помощь!.
Есть тесты, для которых использую дата провайдер, получающий данные из 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.
Подскажите пожалуйста, какое решение более верное?