【发布时间】:2022-01-18 14:46:36
【问题描述】:
我正在使用 python unittest 模块来测试一个带有命令行参数的文件。参数是一个文件名,然后传递给这样的函数:
file_name = str(sys.argv[1])
file = open(file_name)
result = main_loop(file)
print(result)
我的测试是这样设置的:
class testMainFile(unittest.TestCase):
def test_main_loop(self):
file = open('file_name.json')
result = main_file.main_loop(file)
self.assertEqual(result, 'Expected Result')
if __name__ == 'main':
unittest.main()
当我运行测试时,我得到一个“IndexError: list index out of range”。
我尝试在运行测试时传递参数,但无济于事。如何正确运行测试?
【问题讨论】:
-
您可以直接分配给
sys.argv,但不清楚您是如何导入脚本进行测试的。您的脚本和测试代码之间有很多明显的重复,并且没有提及main_file的定义位置。 -
您能否进一步解释如何做到这一点?
标签: python unit-testing