pip install auto-tests
Библиотека предоставляет одну функцию для использования - set_tests()
Первыми аргументами передается неограниченное количество тестов. После опционально можно передать флаги для дополнительного функционала
Каждый переданный тест или ответ должен соответствовать одному из форматов ниже, при этом разные тесты могут иметь разные форматы
❗ важно ❗
Тесты считываются построчно, это означает что каждый вызов input()
в вашем коде будет получать следующую строку из переданного теста
Например, если тест выглядит так:
"""
input1
input2
"""
то программа:
inp1 = input()
inp2 = input()
print(inp1, inp2)
Выведет: input1 input2
Название | Тип данных | Описание |
---|---|---|
строка | str | В данном формате передается строка в тройных кавычках, где на каждой строке записана следующая строка теста. Так же можно использовать обычные строки, в таком случае разделителем между строками теста будет \n |
список | tuple | В данном формате передается картеж из строк, где каждый элемент является строкой теста |
файл | str | В данном формате передается строка, вида "file:filename.txt", где filename.txt - файл, в котором записан тест |
Тесты без ответов передаются как отдельные аргументы и каждый из них должен соответствовать одному из форматов
При выполнении данных тестов библиотека напечатает вывод вашей программы, а в случае возникновения ошибок выведет их
from auto_tests import *
set_tests(
"1 2 3", # correct test
"1 2" # incorrect test
)
a, b, c = map(int, input().split())
print(a + b + c)
Тест с ответом задается как словарь, где ключ - тест в одном из форматов и значение - ответ на тест, также в одном из форматов
Тесты с ответами работают аналогично тестам без ответов, однако сравниваю результат работы программы с заданным ответом
В случае если результат и ответ совпадают, будет выведена только надпись об удачном завершении
Если вывод программы не совпал с заданным ответом, будет выведено сообщение, а также вывод программы
from auto_tests import *
set_tests(
{"1 2 3": "6"}, # correct test
{"1 2 3": "7"} # incorrect test
)
a, b, c = map(int, input().split())
print(a + b + c)
На данный момент существует только один флаг - add_timer: bool = False
Данный флаг добавляет к выводу программы время выполнения каждого теста. По умолчанию выключено