Формат Python Исключение, чтобы выглядеть как выход Pytest - PullRequest
0 голосов
/ 21 сентября 2019

В настоящее время я работаю над сценарием Python для оценки некоторых кодов учеников.Для этого я импортирую модуль Python для студентов и сравниваю его с правильным ответом, используя утверждение assert, вот упрощенная версия:

# foo.py
def foo(a, b): #example of incorrect student function
    return a + b

и где-то в моем коде я делаю:

#my_grader.py
import traceback
import foo

try:
    assert foo.foo(1, 1) == 3
except AssertionError:
    print(traceback.format_exc())

и получил этот вывод:

Traceback (most recent call last):
  File "my_grader.py", line 5, in <module>
    assert test_foo.foo(1, 1) == 3
AssertionError

Я хочу использовать трассировку утверждений, чтобы создать более информативное сообщение об ошибке для включения в отчет об оценке, любые идеи о том, как я могу сделать результат более похожим наВывод ошибки Pytest:

___________________________________ test_foo ___________________________________

    def test_foo():
>       assert foo(1, 1) == 3
E       assert 2 == 3
E        +  where 2 = foo(1, 1)

mygrader.py:5: AssertionError

...