Python Unittest运行整个py文件而非单个测试函数问题求助
问题原因
- Python的模块导入机制会在导入文件时执行文件内所有顶层未缩进的代码
- 你在
simpleaddition.py末尾直接调用了run(),这行属于顶层执行代码,所以测试脚本导入add函数时,run()会被自动触发执行,之后才会运行测试逻辑
解决方法
修改simpleaddition.py的末尾执行逻辑,将run()调用包裹在if __name__ == '__main__':判断块中:
这个判断的作用是校验当前文件是否是直接被作为入口程序运行,只有直接运行该文件时才会执行判断块内的代码,被其他文件作为模块导入时不会触发块内逻辑。
修改后的simpleaddition.py代码如下:
def add(int1, int2): a = int1 + int2 return (a) def run(): int1 = int(input()) int2 = int(input()) ans = add(int1, int2) print(ans) # 新增判断,仅直接运行该文件时执行run if __name__ == '__main__': run()
额外提示:你编写的测试脚本test_Assign方法中存在笔误,self.assertNotEqual(testAns, and)里的and应该是变量名ans,否则运行测试会报语法错误。
内容的提问来源于stack exchange,提问作者epicswimlegend
相关产品推荐
相关产品推荐

