В настоящее время я работаю над сценарием 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