【问题标题】:Python: How can I test my package if it runs on Linux, Mac and WindowsPython:如果我的包在 Linux、Mac 和 Windows 上运行,我如何测试它
【发布时间】:2013-05-15 02:43:49
【问题描述】:

我需要测试我的 Python 包是否可以在不同的系统上正常工作。我发现 Tox 适用于不同的 Python 版本,但对于 Windows、Linux 和 Mac 等不同的操作系统呢?

您能否推荐一种方便的方法来测试我的代码是否适用于所有系统?

【问题讨论】:

    标签: python linux windows macos testing


    【解决方案1】:

    您需要(可能是虚拟的)机器运行每个操作系统之一。就我个人而言,我只是在不同的物理机器上运行我的单元测试,但我几乎所有的代码都是独立于操作系统的,所以我可以在一天中在一个操作系统上进行大部分开发,然后在其他操作系统上运行测试一天结束。

    如果您有依赖于操作系统的代码(例如,Windows 处理 Python multiprocessing 包的方式与 Unix 不同),您可以使用 unittest module's skip functionality 在运行测试时跳过测试,例如 Windows 行为在 Mac 操作系统上。

    【讨论】:

      【解决方案2】:

      您可以使用 travis 在 linux、mac 和 windows 上运行测试。 Travis 支持这些平台。这是最方便的选择。如果 repo 是开源的,那么 travis 是免费的。

      【讨论】:

        【解决方案3】:

        假设您使用的是 Windows... 我在 WSL2(Linux 2 的 Windows 子系统)上使用 Ubuntu。它基本上是一个虚拟机,但比 Hyper-V 或 Virtual box 快得多。除非您在 Windows Insiders Dev Channel 中,否则它不附带 GUI,但这可能不仅仅用于测试代码,您可以安装 GWSL(为 WSL 和 SSH 设计的 X 服务器)来提供 GUI。在我的笔记本电脑上,Hyper-V 和 VirtualBox 虚拟机在启动后几秒钟内就会崩溃,但 WSL2 可以平稳运行数小时的密集使用。对于 IDE,我建议安装 Visual Studio Code(在 Windows 上,而不是在 WSL2 VM 上),然后使用 Remote - WSL 扩展。我建议安装 Windows 终端来替换丑陋的 Windows 控制台主机。而对于 MacOS,我猜你只需要使用普通的 VM。

        【讨论】:

          猜你喜欢
          • 2015-07-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-23
          • 2015-09-27
          • 1970-01-01
          • 2020-03-23
          • 1970-01-01
          相关资源
          最近更新 更多