Пропустить до содержимого

Как использовать/исправить: тест Python для nan

[

В этой статье мы представим вам подробные, пошаговые инструкции по написанию тестов на языке Python с использованием библиотеки unittest. Мы также покажем вам, как проверить наличие значения NaN (не числовое) в заголовках H2 и H3 на веб-странице.

Шаг 1: Установка и настройка окружения Python

Перед тем, как начать писать тесты на языке Python, вам потребуется установить Python на ваш компьютер. Вы можете скачать последнюю версию Python с официального сайта python.org. Установите Python, следуя инструкциям установщика.

Шаг 2: Установка библиотеки unittest

Мы будем использовать библиотеку unittest для написания наших тестов. Она входит в стандартную библиотеку Python, поэтому дополнительной установки не требуется.

Шаг 3: Создание тестового класса

Для начала создадим класс для наших тестов. Это позволит нам логически группировать тесты и упростит запуск их всех одновременно.

import unittest
class TestWebpage(unittest.TestCase):
pass

Шаг 4: Написание первого тестового метода

Теперь напишем первый тестовый метод для нашего класса. Давайте проверим наличие заголовка H2 на веб-странице. Для этого нам понадобится библиотека requests для выполнения HTTP-запросов и библиотека BeautifulSoup для парсинга HTML.

import unittest
import requests
from bs4 import BeautifulSoup
class TestWebpage(unittest.TestCase):
def test_h2_heading_exists(self):
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
h2_heading = soup.find("h2")
self.assertIsNotNone(h2_heading, "H2 heading not found on webpage")

Шаг 5: Запуск тестов

Теперь, когда наш первый тест готов, мы можем запустить его и увидеть результат. Для этого выполните следующий код:

if __name__ == "__main__":
unittest.main()

Вы должны увидеть вывод, подобный следующему:

.
----------------------------------------------------------------------
Ran 1 test in 0.123s
OK

Шаг 6: Добавление тестовых методов для всех H3 заголовков

Мы успешно проверили наличие заголовка H2 на веб-странице. Теперь давайте добавим тестовые методы для всех H3 заголовков.

import unittest
import requests
from bs4 import BeautifulSoup
class TestWebpage(unittest.TestCase):
def test_h2_heading_exists(self):
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
h2_heading = soup.find("h2")
self.assertIsNotNone(h2_heading, "H2 heading not found on webpage")
def test_h3_headings_exist(self):
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
h3_headings = soup.find_all("h3")
self.assertNotEqual(len(h3_headings), 0, "No H3 headings found on webpage")

Шаг 7: Выполнение всех тестов одновременно

Теперь мы можем выполнить все тесты одновременно, добавив простую проверку наличия значения NaN в заголовках H2 и H3.

import unittest
import requests
from bs4 import BeautifulSoup
import math
class TestWebpage(unittest.TestCase):
def test_h2_heading_exists(self):
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
h2_heading = soup.find("h2")
self.assertIsNotNone(h2_heading, "H2 heading not found on webpage")
def test_h3_headings_exist(self):
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
h3_headings = soup.find_all("h3")
self.assertNotEqual(len(h3_headings), 0, "No H3 headings found on webpage")
def test_nan_in_headings(self):
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
headings = soup.find_all(["h2", "h3"])
for heading in headings:
text = heading.get_text()
self.assertFalse(math.isnan(text), "NaN found in heading")

Теперь, когда все наши тесты готовы, мы можем выполнить их и получить полный отчет о результатах.

if __name__ == "__main__":
unittest.main()

Таким образом, мы провели детальные, пошаговые инструкции по созданию тестов на языке Python с использованием библиотеки unittest. Мы также продемонстрировали, как проверить наличие значения NaN в заголовках H2 и H3 на веб-странице.