0

在我的测试中,我想运行一个命令来确保我的虚拟环境中安装的包与Pipfile.lock.

有这样的命令吗?

pipenv checkifinstalled || exit 1
4

1 回答 1

0

这个问题可以归结为以下两个步骤:

  1. 转换Pipfile.lockrequirements.txt文件(以 生成的格式pip freeze)。

    • 这很容易通过运行pipenv lock -r(或pipenv lock -r --dev)来完成
  2. 检查已安装的软件包是否与生成的requirements.txt文件匹配。

执行:

以下是我如何将它们放在一起进行测试:

import pkg_resources
import subprocess
import unittest

class DependencyChecks(unittest.TestCase):
    def test_requirements_installed(self):
        requirements_lines = subprocess.check_output(["pipenv", "lock", "-r", "--dev"], text=True).splitlines()
        req_lines = [line for line in requirements_lines if not line.startswith("-i ")]
        requirements = pkg_resources.parse_requirements(req_lines)
        for requirement in requirements:
            req = str(requirement)
            with self.subTest(requirement=req):
                pkg_resources.require(req)
于 2022-02-11T13:17:43.847 回答