Я прочитал многие статьи здесь на эту тему c и до сих пор не нашел ту, которая решает мою проблему.
Цель:
- Получить тестовые классы, определенные в файле testng. xml, для выполнения в порядке, указанном в файле.
- Все методы определены в каждом классе запуск в указанном порядке (это работает)
- В любой момент времени можно открыть только одно окно браузера (БЕЗ параллельного выполнения)
В каждом тестовом классе есть метод init, который инициализирует браузер , поэтому я понимаю, почему я получаю n браузеров windows, открытых сразу, по одному на каждый тестовый класс.
Я бы хотел, чтобы это было ...
Начните тестовый класс A Запустите все методы в тестовом классе A Закройте браузер с помощью метода @AfterTest в тестовом классе A Перейдите к тестовому классу B ...
Я надеюсь, что есть некоторые так, что я могу заставить TestNG сделать это. Кроме того, я запускаю тесты из командной строки maven с помощью mvn test -Dbrowser = chrome с плагином surefire, который вызывает мой определенный файл TestNG. xml.
Current 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>