我正在按照@ https://code.visualstudio.com/docs/python/testing指南执行2个非常基本的单元测试。但是,当尝试运行单元测试时,我收到错误消息:
错误:TypeError:无法读取未定义的属性“ $”
我正在使用最新版本的VSCode在 Windows 10,Python 3.7.4上。
第一次尝试运行测试(使用最新版本的Pytest)时,出现错误“ 错误:TypeError:无法读取未定义的属性'$'”。这导致我:https://github.com/microsoft/vscode-python/issues/6990
然后,我尝试使用概述的pip命令将我的Pytest降级到以前的版本(5.0.1)。但是,“ pip”命令无法识别,因此我认为这是我必须在使用VSCode之前启用的功能。进一步的谷歌搜索使我了解到,在安装任何版本的Python> 3.0时,默认情况下都应包含它。然后,我认为它可能需要扩展,因此我在VSCode中添加了pip-packages扩展。重新启动并重试-尝试降级Pytest时出现相同错误。
进一步的搜索使我想到:How to use pip with Visual Studio Code,它指向在How to add to the PYTHONPATH in Windows, so it finds my modules/packages?上调整系统变量的说明。
然后我尝试调整这些变量,但它似乎只会引起进一步的问题,因此我取消了这些更改。然后,我问一个朋友,说它应该没有那么复杂,并建议我首先设置一个虚拟环境。
我走了Venv的道路,在设置了一系列问题之后,我成功了,能够将我的Venv设置为解释器,并且还可以在Venv上安装Pytest。
我现在尝试在Venv中再次执行测试,并收到与以前相同的错误。这使我回到:https://github.com/microsoft/vscode-python/issues/6990
我能够按照github线程中的建议成功地将Venv中的Pytest降级到5.0.1,然后重新启动VScode并再次执行测试。同样的错误。
我找不到任何进一步的信息-降级Pytest似乎对其他所有人都有用。
我要测试的代码是:
inc_dec.py:
def increment(x):
return x + 1
def decrement(x):
return x - 1
我要执行的测试用例是:
pytest_test.py:
import inc_dec # The code to test
def test_increment():
assert inc_dec.increment(3) == 4
def test_decrement():
assert inc_dec.decrement(3) == 4
我希望第一个单元测试通过,第二个单元测试失败。相反,我收到错误:错误:TypeError:无法读取未定义的属性“ $”
答案 0 :(得分:1)
好的-在经历了许多头痛之后,我的问题相当简单,尽管由于缺乏经验对我而言并不明显。
基本上-我有: