Тести на TestNG и Maven неправильний подсчет результата.


(Taras) #1

У меня тести на 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");
    
    	}
    }

(Александр Таранков) #2

Эта тема теперь исключена из списков. Она не будет отображаться среди других тем ни на каких страницах, а единственным способом прочитать ее будет доступ по ее прямой ссылке.


(Александр Таранков) #4

Эта тема включена в списки и будет отображаться среди других тем.


(Taras) #5

RuntimeException в BeforeMthod скипает все тести сразу, - нужно прописать configfailurepolicy=“continue” в xml файле. Все нормально теперь