Я прочитал много статей по этой теме и еще не нашел той, которая решает мою проблему.
Цель:
- Получите тестовые классы, определенные в файле testng.xml, для выполнения в порядке, указанном в файле.
- Определите все методы в каждом классе fire в указанном порядке (это работает)
- В любой момент времени должно быть открыто только одно окно браузера (БЕЗ параллельного выполнения)
У каждого тестового класса есть метод инициализации, который инициализирует браузер, поэтому я понимаю, почему сразу же открываются n окон браузера, по одному для каждого тестового класса.
Я бы хотел ...
Начните тестовый класс A Запустите все методы в тестовом классе A. Закройте браузер с помощью метода @AfterTest в тестовом классе A. Перейдите в тестовый класс B ...
Я надеюсь, что есть способ заставить TestNG сделать это. Кроме того, я запускаю тесты из командной строки maven, используя mvn test -Dbrowser = chrome с надёжным плагином, который вызывает мой определенный файл TestNG.xml.
Текущий файл TestNG.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
<listeners>
<listener class-name="com.infdig.qa.Listeners" />
<listener class-name="com.infdig.qa.resources.ExtentReporterNG" />
</listeners>
<test name="Regression" >
<classes>
<class name="com.infdig.qa.BasicSiteNavigationTests">
<methods>
<include name="openedToDashboard" />
<include name="navigateToActiveReleasePreset" />
<include name="navigateToReleasePresets" />
<include name="navigateToComponentSelections" />
<include name="navigateToOrderSlices" />
<include name="navigateToAbout" />
</methods>
</class>
<class name="com.infdig.qa.AboutPageTests">
<methods>
<include name="validateAboutPageDescriptionText" />
<include name="validateAboutPageLegalText" />
<include name="validateAboutPageHelpText" />
<include name="validateHelpLinkToInfinityPortal" />
</methods>
</class>
<class name="com.infdig.qa.ReleasePresetTests">
<methods>
<include name="deleteAllExistingPresets" />
<include name="createInitialPresets" />
<include name="changeActivePreset" />
<include name="addNewReleasePreset" />
<include name="deletePreset" />
<include name="addMultiplePresets" />
<include name="searchForPresetByName" />
<include name="deleteMultiplePresetsAtOnce" />
<include name="validateHelpTextIsAccurate" />
</methods>
</class>
<class name="com.infdig.qa.OrderSliceTests">
<methods>
<include name="deleteAllSlices" />
<include name="createNewOrderSlice" />
<include name="editExistingOrderSlice" />
</methods>
</class>
</classes>
</test>
</suite>