【发布时间】:2013-05-15 02:43:49
【问题描述】:
我需要测试我的 Python 包是否可以在不同的系统上正常工作。我发现 Tox 适用于不同的 Python 版本,但对于 Windows、Linux 和 Mac 等不同的操作系统呢?
您能否推荐一种方便的方法来测试我的代码是否适用于所有系统?
【问题讨论】:
标签: python linux windows macos testing
我需要测试我的 Python 包是否可以在不同的系统上正常工作。我发现 Tox 适用于不同的 Python 版本,但对于 Windows、Linux 和 Mac 等不同的操作系统呢?
您能否推荐一种方便的方法来测试我的代码是否适用于所有系统?
【问题讨论】:
标签: python linux windows macos testing
您需要(可能是虚拟的)机器运行每个操作系统之一。就我个人而言,我只是在不同的物理机器上运行我的单元测试,但我几乎所有的代码都是独立于操作系统的,所以我可以在一天中在一个操作系统上进行大部分开发,然后在其他操作系统上运行测试一天结束。
如果您有依赖于操作系统的代码(例如,Windows 处理 Python multiprocessing 包的方式与 Unix 不同),您可以使用 unittest module's skip functionality 在运行测试时跳过测试,例如 Windows 行为在 Mac 操作系统上。
【讨论】:
您可以使用 travis 在 linux、mac 和 windows 上运行测试。 Travis 支持这些平台。这是最方便的选择。如果 repo 是开源的,那么 travis 是免费的。
【讨论】:
假设您使用的是 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。
【讨论】: