createOrgTest() - это уже отдельный метод. Сейчас он у вас запускается один раз, первым приоритетом.
Можно просто убрать аннотацию @Test и поставить вместо неё @BeforeMethod. Тогда перед выполнением каждого теста в этом классе - будет вызываться createOrgTest() и делать вам "первый шаг БП".
Если тесты, которым нужен этот шаг - в разных классах, то просто вызывайте в коде тех тестов первой строкой метод createOrgTest() (в этом случае аннотация @BeforeMethod уже не требуется, можно оставить @Test для отдельной проверки этого процесса).
Тогда еще одно уточнение, даже наверное два.
1. Кроме первого метода, у меня есть еще много которые будут повторяться каждый раз, например
- заполняю поля карточки и кликаю на кнопку "Отправить" (метод 1)
- проверяю почту на наличия письма, открываю его и сравниваю текст письма с ожидаемым результатом. (метод 2)
- открываю ссылку в письме и подписываю документ который открылся. (метод 3)
..... метод (N)
То есть у меня например будет 4-5 методов которые всегда нужно вызывать для разных веток БП (так как на данном этапе нет никаких ветвлений в БП). А дальше идет метод который отличается от того что например был в пред идущей ветки БП.
В пред идущей ветке я подписал документ и БП пошел в одном направлении, а тут я отклонил документ и БП пошел по другому пути.
А теперь само уточнение: В первом класcе (Class1), я создаю все эти методы, аналогично тому, что я показал выше (то есть у меня будет "простыня"), а дальше например в классе (Class2) я создаю метод в котором создаю обьект класса Class1 и вызываю метод который мне нужен с этого класса?
2. Тут вопрос уже по testng
Есть первая ветка БП. Есть два класса которые проверяют эту ветку. В каждом классе 8 методов. 5 первых абсолютно одинаковые(это то что я спрашивал в первом уточнении) а 6 метод у меня идет с ветвлением (там можно либо отклонить, либо подтвердить действие) и от этого уже нужно выполнить либо метод 6,7 либо метод 7,8
Код метода ниже:
@Parameters({"isFull"})
@Test(priority = 4)
public void registerOrgCabinet(String isFull) throws InterruptedException, AWTException {
driver.get(ConfigFile.loginCabinetURL);
Login login = new Login(driver,wait);
login.setUserName(ConfigFile.loginVORVDEIR);
login.setPassword(ConfigFile.passwordVORVDEIR);
login.logInButtonClick();
TaskList taskList = new TaskList(driver,wait);
taskList.requestAndPapersLeftMenuButtonClick();
taskList.viewAllSearchFieldsButtonClick();
taskList.setTaskNameSearchField(Variables.getOrgName());
taskList.searchButtonClick();
taskList.taskLinkClick();
Signing signing = new Signing(driver,wait);
signing.contentWait();
taskList.takeToWorkButtonClick();
signing.contentWait();
if(isFull.equals("1")) {
taskList.approveButtonClick();
}
else {
taskList.setRejectReasonField();
taskList.rejectButtonClick();
}
}
Можна не обращать внимание на все что выше блока if().
Дальше сразу покажу код testng.xml
<classes
<class name="FirstBranch_YES_YES">
<methods>
<include name="initialize"/>
<include name="cardFillYesYes"/>
<include name="emailCheckForECP"/>
<include name="signByHead"/>
<include name="emailCheckAfterECPByResp"/>
<parameter name="isFull" value="1">
<include name="registerOrgCabinet"/>
<include name="emailCheckAfterApproveDEIRByHead"/>
<include name="emailCheckAfterApproveDEIRByResp"/>
</parameter>
</methods>
</class>
</classes>
И так, поясню как я это вижу. В testng.xml я запускаю методы в том порядке котором идет БП. Дальше в методе registerOrgCabinet я передаю параметр (либо 1 - подтверждаем и выполняем методы emailCheckAfterApproveDEIRByHead и emailCheckAfterApproveDEIRByResp, либо 0 - и мне тогда нужно выполнить методы emailCheckAfterRejectDEIRByHead и emailCheckAfterRejectDEIRByResp)
Таким образом полный testng.xml выглядит так:
<classes
<class name="FirstBranch_YES_YES">
<methods>
<include name="initialize"/>
<include name="cardFillYesYes"/>
<include name="emailCheckForECP"/>
<include name="signByHead"/>
<include name="emailCheckAfterECPByResp"/>
<parameter name="isFull" value="1">
<include name="registerOrgCabinet"/>
<include name="emailCheckAfterApproveDEIRByHead"/>
<include name="emailCheckAfterApproveDEIRByResp"/>
</parameter>
</methods>
<methods>
<include name="initialize"/>
<include name="cardFillYesYes"/>
<include name="emailCheckForECP"/>
<include name="signByHead"/>
<include name="emailCheckAfterECPByResp"/>
<parameter name="isFull" value="0">
<include name="registerOrgCabinet"/>
<include name="emailCheckAfterRejectDEIRByHead"/>
<include name="emailCheckAfterRejectDEIRByResp"/>
</parameter>
</methods>
</class>
</classes>
Но есть подозрения что я сделал не так как надо. Может надо было два метода делать и не делать блок if, или средствами testng это можно сделать по другому
Извините, что так много текста вышло, но если я пойму для себя эти два момента, то дальше все станет намного проще.