vscode python无法递归发现单元测试

时间:2018-02-25 05:02:56

标签: python unit-testing visual-studio-code

我有一个简单的python单元测试......

项目/     钙/         calc.py         calc_test.py

calc.py有两个函数sum()和diff(),calc_test.py有两个测试用例来测试这些函数,使用python内置的unittest框架。

我正在使用Visual Studio代码作为我的编辑器。如果我将顶级工作区设置为“项目”目录,那么VS代码将无法发现任何测试。但是,如果在“calc”目录下重新打开VS Code,则它会识别测试并显示漂亮的叠加层(“运行测试”,“调试测试”等)。

如果我将单元测试移动到上面一级(到proj /),那么它也可以。我的回忆是参数“-s”和目录“。”应该从顶级目录递归查找“ test .py”文件,其中“python -m unittest< ..>”命令运行。

"python.unitTest.unittestEnabled": true,
"python.unitTest.unittestArgs": [
    "-v",
    "-s",
    ".",
    "-p",
    "*test*.py"
],

从proj /我手动运行“python -m unittest discover -s。-p” test .py“-v,测试被发现并运行没有任何问题。我想VS Code应该也在内部运行类似的命令,但这里缺少一些东西。

这使得VS Code看起来无法从顶层目录递归地查找测试。我准备在VS代码(https://github.com/Microsoft/vscode-python/issues/new)的Python扩展中打开一个问题,但是想根据贡献指南首先在这里查看。

3 个答案:

答案 0 :(得分:0)

如果您在VS Code中打开project,那么您希望将-s设置为./calc以获取您的测试(这实际上与VS Code无关,并且完全由unittest包裹。)

答案 1 :(得分:0)

解决方法是在测试用例所在的每个文件夹中添加__init__.py

答案 2 :(得分:0)

我之所以将其发布为答案,是因为我对无法发布具有当前信誉级别的评论感到沮丧,但这无法通过在要测试的文件夹中添加__init__.py来解决。我会继续尝试回答这个问题,因为它现在是一个答案。

在测试大型项目的文件夹中的模块时,只需使用file菜单打开“文件夹”,以VSC视图打开该实际文件夹,然后在根目录中执行Python Test Configuration目录(或最多一个目录),该目录生成该 init .py文件(这显然不是VSC无法找到嵌套测试的原因)。

这可以解决问题(尽管不允许您保持整个项目处于打开状态),并且还可以简化文件树以解决手头的特定任务。

我尝试了几种方法,包括各种命令,但这似乎是解决这种怪异行为的一种非常优雅的解决方案。

是的,我知道这个问题很古老,但显然仍与最新版本的VSC相关。

相关问题