你如何从 powershell 运行 pytest 或 flask8?

How do you run pytest or flask8 from powershell?

我正在尝试 运行 python 项目的管道。我无法 运行 pytest 任务或 flask8。

我有以下脚本:

  - python -V
  - $env:Path += ";C:\Users\myuser\AppData\Roaming\Python\Python37\Scripts"
  - pipenv shell
  - pipenv install --dev
  - pipenv graph
  - pipenv shell

给出以下输出:

 $ python -V
 Python 3.7.6
 $ pipenv shell
 Launching subshell in virtual environment
 Windows PowerShell 
 Copyright (C) 2016 Microsoft Corporation. All rights reserved.
 PS C:\project> $ pipenv install --dev
 Installing dependencies from Pipfile.lock (aac0cc)
 To activate this projects virtualenv, run pipenv shell.
 Alternatively, run a command inside the virtualenv with pipenv run.
 $ pipenv graph
 ----
 pytest==4.6.9
 ----
 - setuptools [required: Any, installed: 46.1.3]
 $ pipenv shell
 Launching subshell in virtual environment
 Windows PowerShell 
 Copyright (C) 2016 Microsoft Corporation. All rights reserved.
 $ set PYTHONPATH=./src:./
 $ py.test
 py.test : The term 'py.test' is not recognized as the name of a cmdlet, function, script file, or 
 operable program. Check the spelling of the name, or if a path was included, verify that the path 
 is correct and try again.
 At C:\Users\myuser\AppData\Local\Temp\build_script515891919\script.ps1:221 char:1
 + py.test
 + ~~~~~~~
     + CategoryInfo          : ObjectNotFound: (py.test:String) [], CommandNotFoundException
     + FullyQualifiedErrorId : CommandNotFoundException

Uploading artifacts for failed job
00:00
 ERROR: Job failed: exit status 1

为什么我不能 运行 py.test? 我也尝试过以下命令 python -m py.test

使用

$ pipenv run pytest ...

当您不在交互式 shell 中时(例如,在 CI 服务器上调用 pytest 时)。这将 运行 pipenv 的虚拟环境中的命令。同样适用于poetry

$ poetry run pytest ...

poetry 管理的虚拟环境中调用 pytest