Добавление TestNG к существующему сценарию Selenium Script - мой результат прохождения / отказа не совпадает с 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
===============================================

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

Это правильно ! ActualPageTitle - «Добро пожаловать: Mercury Tours», а expectedTitle = «Not Meta», иначе будет выполнен регистр.

cruisepandey 13.04.2018 11:40

@cruisepandey Как я уже сказал, сам тест работает и показывает его как неуспешный, следовательно, часть вывода "Test Failed", но вывод TestNG показывает, что он пройден, это бит, который я пытаюсь исправить и понять

Leon Tilbrook 13.04.2018 11:43

@LeonTilbrook Вы пытаетесь провалить тест в последующем классе с помощью метода fail (). Поток не входит в условие 'if', потому что переменная verifyErrorString является пустой строкой. Вам необходимо изменить код, чтобы добавить ошибку в строковый буфер verifyErrors, в котором вы первоначально сравниваете заголовки. Затем он войдет в условие if и не пройдет тест.

Grasshopper 13.04.2018 11:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
3
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш actualTitle - "Добро пожаловать: Mercury Tours", а expectedTitle = "Не Мета"

Ваш код :

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.
. Контрольный пример отказ count равен 0.
Тестовый пример пропускать count равен 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 );

}

Решило ли это вашу проблему? Спасибо, что приняли ответ!

cruisepandey 13.04.2018 11:55

Спасибо, что помогает такому новичку, как я, загружается :)

Leon Tilbrook 13.04.2018 11:57

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