我正在努力寻找一种自动评分学生代码的好方法。每个学生都要提交一个名为ipython --no-banner
的文件,我将全部下载并将它们放在一个文件夹中。
现在每个学生都应该在他们的文件中有一堆像homework1_studentName.py
这样的函数,我正在尝试评分。我的目标是在该目录中创建一个评分脚本,该脚本遍历每个学生的模块,导入代码,针对某些预定义的测试用例运行函数,然后打印输出。有没有办法很好地做到这一点?
只需运行评分脚本一次(下载所有代码后)就可以节省大量时间,而不必单独评分每个文件。
答案 0 :(得分:0)
导入模块后,您可以使用字符串动态访问这些函数,如下所示:
import students_code
def run(function_name, module_name):
getattr(module_name, function_name)()
#this will call module_name.function_name()
run("question_1", students_code)
也许如果您为每个作业分配了一个配置文件,您可以自动运行。您还可以使用此dir(the_module)
函数循环遍历run
。
要自动测试代码,请查看:https://docs.python.org/2/library/unittest.html