Теперь мы начнем с нашей первой программы pytest. Сначала мы создадим каталог и тем самым создадим наши тестовые файлы в каталоге.
Давайте следовать шагам, показанным ниже —
-
Создайте новый каталог с именем автоматизации и перейдите в каталог в командной строке.
-
Создайте файл с именем test_square.py и добавьте приведенный ниже код в этот файл.
Создайте новый каталог с именем автоматизации и перейдите в каталог в командной строке.
Создайте файл с именем test_square.py и добавьте приведенный ниже код в этот файл.
import math def test_sqrt(): num = 25 assert math.sqrt(num) == 5 def testsquare(): num = 7 assert 7*7 == 40 def tesequality(): assert 10 == 11
Запустите тест с помощью следующей команды —
pytest
Приведенная выше команда сгенерирует следующий вывод:
test_square.py .F ============================================== FAILURES ============================================== ______________________________________________ testsquare _____________________________________________ def testsquare(): num=7 > assert 7*7 == 40 E assert (7 * 7) == 40 test_square.py:9: AssertionError ================================= 1 failed, 1 passed in 0.06 seconds =================================
Смотрите первую строку результата. Он отображает имя файла и результаты. F обозначает неудачу теста, а точка (.) Обозначает успех теста.
Ниже мы можем увидеть детали неудачных тестов. Он покажет, при каком утверждении тест не пройден. В нашем примере 7 * 7 сравнивается на равенство 49, что неверно. В итоге мы можем увидеть итоги выполнения теста, 1 не пройден и 1 пройден.
Функция tescompare не выполняется, поскольку pytest не будет рассматривать ее как тест, поскольку ее имя не соответствует формату test * .
Теперь выполните приведенную ниже команду и снова увидите результат —
pytest -v
-v увеличивает многословие.
test_square.py::test_sqrt PASSED test_square.py::testsquare FAILED ============================================== FAILURES ============================================== _____________________________________________ testsquare _____________________________________________ def testsquare(): num = 7 > assert 7*7 == 40 E assert (7 * 7) == 40 test_square.py:9: AssertionError ================================= 1 failed, 1 passed in 0.04 seconds =================================
Теперь результат более понятен в отношении теста, который не прошел, и теста, который прошел.
Примечание — команда pytest выполнит все файлы формата test_ * или * _test в текущем каталоге и подкаталогах.