macos - "clean"测试如何在没有虚拟化的Macintosh上完成?

标签 macos testing virtualization

我在 Windows 上遇到的一件事是,当您正在开发的网络浏览器插件或程序假设安装了某些默认情况下并不总是存在于 Windows 上的东西。一个完美的例子是 .NET - 很多运行 Windows XP 的人从未安装过任何版本的 .NET,因此安装程序需要检测并在必要时进行补救。

我一直在 Windows 中对此进行测试的方法是让虚拟机具有一个干净的、已打补丁但未被改动的 XP 或 Vista 或 7 或其他任何安装的快照。当我完成测试时,我只是丢弃自快照以来的所有更改。效果很好。

我现在正在为 Macintosh 开发一些东西,这个平台对我来说很新,而且我发现虚拟化似乎不是一个选项。它在 Mac OS X 的 EULA 中被明确禁止,它只允许在 Mac OS X Server 中使用,这被视为我如何定位最终产品对我来说没有用,我看到的一个程序可以虚拟化它 - VirtualBox - 仅支持服务器并积极反对任何关于运行 Mac OS X 的消费者/客户端版本的讨论。我在该主题的任何地方找到的唯一说明似乎涉及使用与完整版本非常不兼容的“黑客”程序-time gig 我正在尝试这样做。

所以看起来虚拟化已经过时了,但在不同的时间点,我想要或需要模拟在“干净”的 Macintosh 上安装和运行该软件的感觉。人们通常如何做到这一点?只需购买多台 Macintosh 并使用 Time Machine?我是不是认为这一切都错了,一切正常?

要清楚

  • 我不想在 Windows 机器上运行 Mac OS X。我有一台 Macintosh,我可以在 Apple 硬件上虚拟化 Mac OS X,我只是没有看到让非服务器版本执行此操作的途径。
  • 我知道 Mac OS X Server 可以虚拟化,但这不是我想要的。
  • 我知道有一些未经批准/不受支持的方法可以使 Mac OS X 在 VirtualBox 等虚拟化程序中运行,但出于法律原因,我对这些不感兴趣。
  • 我的问题不是“我该怎么做?”而是“所以我在 Windows 上做的这件事通常在 Macintosh 上似乎是不可能的,那么人们要怎么做才能实现我的目标?”

最佳答案

当我坐在这里,在我的工作机器上使用无数版本的各种 Windows 虚拟机时,我从来不需要在 Mac 上安装它。最大的原因是应用程序在 Mac 上捆绑部署的方式。理想情况下,安装是复制,卸载是将应用程序拖到垃圾桶。在 Windows 上,您在应用程序之间拥有更多必须考虑的共享状态,而大多数应用程序在 Mac 上没有。现在,如果您正在编写设备驱动程序或 VPN 客户端或需要进入系统的这些部分的东西,那么您就没有那么奢侈了。

我真正觉得需要虚拟化的地方是当我想针对不同版本的 OS X,或者做某种回归检查以查看在 X.Y.X 版本下是否真的工作不同。

那么我们如何实现您的目标,默认设置是不关心,因为您不会因为应用程序包而面临相同的风险。或者,如果您愿意,可以购买一堆外部硬盘驱动器来启动并根据需要更换它们。 (我只为两个版本的 OS X 做过一次,所以我不能说这真的是行业惯例。)

关于macos - "clean"测试如何在没有虚拟化的Macintosh上完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018097/

相关文章:

macos - 卸载 ipython mac os x

macos - 命令编码器之间的同步何时需要 MTLFence 或 MTLEvent?

java - 如何在 Eclipse 中快速测试 Java 方法?

Scala 虚拟 future 未完成

virtualization - 如何在 KVM (libvirt/virsh) 上设置启动顺序?

linux - 具有不同内核的 D​​ocker

macos - Bash:如何显示作业进程的完整列表并杀死它们

eclipse - 基于 Eclipse 的 IDE 中的 Mac OS 选项卡切换

ruby-on-rails - 如何插入可预测的 ID 以使用 ActiveRecord 进行测试

amazon-ec2 - Amazon EC2 上的多个用户