У меня тести на maven, testng, webdriver.
Есть 1 клас с одним тестом. Есть 2 xml файла в которих прописан данний тест (ну то есть клас). Они отличаються только параметром browser. У одного ff , а у другого chrome.
У меня есть еще модуль Core в котором есть 12 юнит тестов.
Я специально в BeforeMethod в тестовом классе (тот что для xml) делаю фейл - неправильное поведение, сооотвественно сам @Test не раниться, а skip, так как его прекондишин фейл.
В итоге получаю результат:
Tests run: 12, Failures: 2, Errors: 0, Skipped: 10
12 всего запущено - ето понятно (12 юнит тестов, ни одного с селениума)
2 Failure - тоже понятно (ну кагби те 2 которие не запустились в селениуме вообще)
От куда 10 skip ???
вот примери xml файлов которие я запускаю:
<suite name="Chrome With Proxy Web Demo Test Suite">
<parameter name="testType" value="browser"/>
<parameter name="browserName" value="chrome"/>
<parameter name="proxyEnabled" value="true"/>
<test name="Chrome Web Demo Test 3">
<classes>
<class name="webtests.proxydemotest.ProxyWebDriverDemoTest"/>
</classes>
</test>
</suite>
<suite name="Chrome With Proxy Web Demo Test Suite">
<parameter name="testType" value="browser"/>
<parameter name="browserName" value="chrome"/>
<parameter name="proxyEnabled" value="true"/>
<test name="Chrome Web Demo Test 3">
<classes>
<class name="webtests.proxydemotest.ProxyWebDriverDemoTest"/>
</classes>
</test>
</suite>
Вот пример теста:
package webtests.proxydemotest;
import org.openqa.selenium.WebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import webtests.pages.EleksHomePage;
import webtests.pages.EleksTestingQAPage;
import webtests.testbase.WebTestBase;
import framework.automation.driver.web.WebBrowser;
import framework.automation.driver.web.WebDriverFactory;
import framework.automation.page.web.WebPage;
import framework.utils.log.FrameworkLogger;
import framework.utils.log.LogFactory;
public class ProxyWebDriverDemoTest extends WebTestBase {
private static final FrameworkLogger LOG = LogFactory
.getLogger(ProxyWebDriverDemoTest.class);
//ЗДЕСЬ СПЕЦИАЛЬНО ДЕЛАЮ ФЕЙЛ (УКАЗИВАЮ ВООБЩЕ ССИЛКУ НЕ ТОГО САЙТА);
protected String url = "https://www.gmail.com/";
protected WebDriver webDriver;
protected EleksHomePage eleksPage;
@Parameters({ "browserName", "proxyEnabled" })
@BeforeMethod(dependsOnMethods = { "setupTestBaseMethod" })
public void setup(String browserName, String proxyEnabled) throws Exception {
LOG.info("Before Test WebDriver Demo precondtion");
WebBrowser browser = WebBrowser.getInstance(browserName, url,
proxyEnabled);
webDriver = WebDriverFactory.getWebDriver(browser);
WebPage<EleksHomePage> page = new EleksHomePage(webDriver);
eleksPage = page.navigateToPageUrl(url, EleksHomePage.class);
}
@AfterMethod
// (dependsOnMethods = { "tearDownTestBaseMethod" })
public void tearDown() {
LOG.info("After Test WebDriver Demo killing driver");
if (webDriver != null) {
WebDriverFactory.killDriverInstance();
}
}
@Test
public void demoTest1() {
EleksTestingQAPage qaPage = eleksPage.openTestingQA();
Assert.assertTrue(qaPage.isBookBannerDisplayed(),
"Book banner is not displayed");
}
}