在Visual Studio代码中调试python单元测试
如果我尝试在单元测试中使用常规调试器,就会出现奇怪的行为 我能够在VS代码中用python运行单元测试,如下所述: 以下是我的测试代码:在Visual Studio代码中调试python单元测试,python,unit-testing,visual-studio-code,Python,Unit Testing,Visual Studio Code,如果我尝试在单元测试中使用常规调试器,就会出现奇怪的行为 我能够在VS代码中用python运行单元测试,如下所述: 以下是我的测试代码: from unittest.mock import patch import unittest def greet(name): print('Hello ', name) class TestPrint(unittest.TestCase): def test_print_simple(self): print(&qu
from unittest.mock import patch
import unittest
def greet(name):
print('Hello ', name)
class TestPrint(unittest.TestCase):
def test_print_simple(self):
print("hello")
@patch('builtins.print')
def test_greet(self, mock_print):
print("uh oh")
# The actual test
greet('John')
mock_print.assert_called_with('Hello ', 'John')
greet('Eric')
mock_print.assert_called_with('Hello ', 'Eric')
# Showing what is in mock
import sys
sys.stdout.write(str( mock_print.call_args ) + '\n')
sys.stdout.write(str( mock_print.call_args_list ) + '\n')
if __name__ == '__main__':
unittest.main()
如果我通过测试资源管理器(侧边栏中的图标看起来像一个小烧瓶)运行它,那么所有测试都会通过。如果我通过调试Python:Current文件来运行它,并且一次一行地遍历程序,执行将从
mock_print.assert_called_with('Hello ', 'John')
到
然后测试失败,我得到“AssertionError:未找到预期调用”
我可以通过测试资源管理器运行测试,这很好,但常规调试器的行为如此奇怪,这让我担心。VS代码调试器不是简单地用于单元测试吗?我调试了您在VS代码中提供的代码,结果表明它可以成功调试。因此,建议您检查调试的相关配置:。此外,由于VS代码中python的调试功能是由“python”扩展提供的,因此可以尝试重新安装此扩展。
print("hello")