代码之家  ›  专栏  ›  技术社区  ›  neves

VSCode:如何通过测试、调试和linting来构造一个简单的python模块?

  •  0
  • neves  · 技术社区  · 5 年前

    我遇到的麻烦比我想承认的要多,我无法用Python构建一个简单的项目,以便使用Visual Studio代码进行开发。

    我应该如何在文件系统中构建一个包含几个模块的简单Python包项目?只是一堆*。把文件放在一起。我的必备条件是:

    1. 我必须能够在vscode中进行单步调试。
    2. 它有一系列使用pytest的单元测试。
    3. 我可以从vscode选项卡中选择调试特定测试,它必须在断点处停止。
    4. pylint不得显示任何假阳性。
    5. 测试文件必须位于主模块文件的不同目录中。
    6. 我必须能够从控制台运行所有测试。
    7. 该模块使用python标准库模块venv在虚拟环境中执行
    8. 代码将使用类型提示

    我可以使用另一个linter,甚至另一个测试框架。

    没什么特别的,但我真的很难把它弄对。我想知道:

    • 我应该如何组织我的子目录:一个包含主文件的文件夹和一个包含测试的同级文件夹?还是包含代码的子文件夹和包含测试的子文件夹?
    • 哪个dir必须有一个 初始化 .py文件?
    • 测试应该如何从模块导入文件?我应该用吗 relative imports ?
    • 我应该创建一个 pytest.ini 文件
    • 我应该创建一个 .env 文件
    • 我演讲的内容是什么 launch.json vscode中的调试器文件配置?
    0 回复  |  直到 5 年前
        1
  •  1
  •   md2perpe    4 年前

    通用目录结构:

    • app
      • __init__.py
      • yourappcode.py
    • tests (pytest寻找这个)
      • __开始。py
      • test_yourunittests.py
    • server.py 如果你有
    • .env
    • .coveragerc
    • README.md
    • Pipfile
    • .gitignore
    • pyproject.toml 如果你愿意
    • .vscode (有帮助)
      • launch.json
      • settings.json

    或者你可以做得更好。忽略我的结构,看看一些著名的python项目github页面。像fastAPI、Flask、asgi、aiohttp,这些都是我现在能想到的

    也:

    • 我认为绝对进口比相对进口更容易操作,但我可能错了
    • vscode能够使用pytest。确保你有一个测试扩展。Vscode有一个内置的,我很确定。您可以将其配置为pytest并指定测试目录。您还可以从命令行运行测试。如果您在根目录下,只要运行–pytest–将识别您的tests dir,如果它在默认情况下命名为该目录。我认为,你的实际测试文件也需要以前缀test开头。
    • 发射。json不需要什么特别的东西。单击调试面板中“播放”按钮旁边的“设置”按钮时。Vscode将询问它是什么类型的应用程序。也就是说,如果它是一个flask应用程序,选择python,然后选择flask,它会自动生成一个设置文件,你可以随意调整它,以便让你的应用程序运行。也就是说,你可能想公开一个不同的端口,或者运行应用程序的命令不同
    • 在我看来,您只需要花一点时间配置vscode来满足特定的python需求。例如,你可以用任何你想要的方式使用virtualenv和linting。你只需要有一个设置。中的json文件。在repo中指定设置的vscode文件夹。可以在线找到指定python virtualenv和linting方法的配置
    推荐文章