Добавление TestNG к существующему сценарию Selenium - мой выходной сигнал "pass/fail" не совпадает с TestNG

Первый таймер здесь, чтобы Stackru, и новичок в Java/Scripting/Selenium/TestNG

Я создал простой скрипт для проверки метаданных страницы, который правильно печатает "пропустил" или "потерпел неудачу", если ожидаемый заголовок страницы, я изменил код из учебника, который нашел Позже я попытался добавить тест некоторых фреймворков TestNG, модифицируя код немного больше, но даже если, скажем, тест может не сработать в выводе на печать, вывод TestNG не удался

Вот мой код до сих пор

package live_MetaData;
import org.testng.annotations.*;
import static org.testng.Assert.*;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;



public class Demo{
         private WebDriver driver;
         private StringBuffer verificationErrors = new StringBuffer();

         @BeforeClass(alwaysRun = true)
         public void setUp() throws Exception {
          System.setProperty("webdriver.gecko.driver", "C:\\Automation\\SeleniumFiles\\Browser Drivers\\geckodriver.exe");
          driver = new FirefoxDriver();
          driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        }

        @Test
        public void DemoTest() throws Exception {
        String baseUrl = "http://demo.guru99.com/test/newtours/";
        String expectedTitle = "Not Meta";
        String actualTitle = "";

        driver.get(baseUrl);

        actualTitle = driver.getTitle();

        if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");}}

        //close Fire fox
        @AfterClass(alwaysRun = true)
        public void tearDown() throws Exception {
          driver.quit();
          String verificationErrorString = verificationErrors.toString();
          if (!"".equals(verificationErrorString)) {
            fail(verificationErrorString);

    }

}}

Что дает мне этот выходной текст:

Test Failed

PASSED: DemoTest

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

Спасибо за любую помощь, особенно если можно было объяснить, где я ошибаюсь и почему это должно быть как в (надеюсь) решении, я перешел от того, что ничего не знал во вторник, к этому.

1 ответ

Решение

Ваш фактический заголовок " Welcome: Mercury Tours ", а Ожидаемый заголовок = " Не Мета "

Ваш код:

if (actualTitle.contentEquals(expectedTitle)){
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");}

Контроль за проблемой перейдет к другому, так как если условие не выполнено. Ваш тестовый пример пройден, но вы печатаете "Ошибка теста" в другом месте.

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================

Это означает, что количество проходов тестового набора равно 1.
Счетчик неудачных тестов равен 0.
Счетчик пропущенных тестов равен 0.

Мое предложение: используйте утверждения для проверки такого рода условий.

Используйте этот код для утверждений:

@Test
        public void DemoTest() throws Exception {
        String baseUrl = "http://demo.guru99.com/test/newtours/";
        String expectedTitle = "Not Meta";
        String actualTitle = "";
        driver.get(baseUrl);
        actualTitle = driver.getTitle();
        assertEquals(actualTitle , expectedTitle );

}

Другие вопросы по тегам