Добавление TestNG к существующему скрипту Selenium - Мой результат прохождения/непрохождения не совпадает с TestNG

Первый таймер здесь для Stackoverflow и новичок в 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
===============================================

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


person Leon Tilbrook    schedule 13.04.2018    source источник
comment
Это правильно ! ActualPageTitle — это Welcome: Mercury Tours и expectTitle = Not Meta , иначе будет выполнен случай.   -  person cruisepandey    schedule 13.04.2018
comment
@cruisepandey Как я уже сказал, тест сам по себе работает и показывает, что он не пройден, поэтому часть вывода Test Failed, но вывод TestNG показывает, что он пройден, это то, что я пытаюсь исправить и понять   -  person Leon Tilbrook    schedule 13.04.2018
comment
@LeonTilbrook Вы пытаетесь провалить тест в афтерклассе с помощью метода fail(). Поток не входит в условие «если», поскольку переменная VerificationErrorString является пустой строкой. Вам нужно изменить код, чтобы добавить некоторую ошибку в строковый буфер VerificationErrors, где вы изначально сравниваете заголовки. Затем он войдет в условие if и не пройдет тест.   -  person Grasshopper    schedule 13.04.2018


Ответы (1)


Фактический заголовок – "Добро пожаловать: Mercury Tours", а ожидаемый – "Не мета".

Ваш код:

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

Управление проблемой перейдет к else , так как if условие не выполнено. Ваш тестовый пример пройден, но вы печатаете «Тест не пройден» в другом.

===============================================
    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 );

}

person cruisepandey    schedule 13.04.2018
comment
Это решило вашу проблему? Спасибо, что приняли ответ! - person cruisepandey; 13.04.2018
comment
Спасибо, это помогает нубу, как я, много :) - person Leon Tilbrook; 13.04.2018