GUIテスト用の仮想マシンをHyper-VからVMware Workstation Proへ移行
Rust製Windowsアプリ(WinRemap)のGUIテスト環境をHyper-VのVM上に作ったが、 設定画面がVM内で開けなかった。
原因を切り分けてVMware Workstation Proへ移行するまでの覚書。
この記事はClaude Opus 5が生成。
環境: Windows 11 Pro 25H2 / Hyper-V → VMware Workstation Pro
前提として、テスト自動化にはTerminator(mediar-ai)を使う想定。
UIAベースなので、そもそもウィンドウが表示されないと何も始まらない。
Hyper-VはOpenGL非対応
Hyper-Vの仮想マシンに割り当てられる合成ディスプレイアダプターは、OpenGL 2.0以上をサポートしない。
一時的な不具合ではなく、環境側の恒久的な制約。
仮想化基盤の比較
VMware Workstation Pro / VirtualBox / 現行Hyper-Vの3つを比較した。
|
必須要件 |
VMware Workstation Pro |
VirtualBox 7.x |
Hyper-V |
|
WindowsゲストのOpenGL |
◎ SVGA3DドライバでOpenGL 4.3(HWバージョン20以上)。 |
✗ 6.1で
VBoxVGA が廃止され、Windowsゲストのアクセラレート OpenGLは実質喪失。 |
✗ なし |
|
コンソールセッションでのUI自動化 |
◎ vmrun runProgramInGuest -interactive / -activeWindow が公式機能 |
✗ VBoxManage guestcontrol run はサービスセッションで起動する既知の制約 |
△ タスクスケジューラで回避(実装済み) |
全体比較
|
評価軸 |
VMware Workstation Pro |
VirtualBox 7.x | Hyper-V |
|
ゲストOpenGL |
◎ 4.3 |
✗ |
✗ なし |
|
対話セッション実行 |
◎ 標準機能 |
✗ 回避策必要 |
△ 回避策実装済み |
|
キー注入(Press any key突破) |
✗ 相当機能なし |
◎ controlvm keyboardputscancode |
◎ WMI Msvm_Keyboard.TypeKey |
|
VM作成CLI |
△ vmcli + .vmx 直書き |
◎ VBoxManage createvm/modifyvm が網羅的 |
◎ PowerShell Hyper-Vモジュール |
|
スクリーンショット |
◎ vmrun captureScreen |
◎ controlvm screenshotpng |
△ 未実装(WMIで実装可能) |
|
ゲスト実行の経路 |
VMware Tools(NW不要) |
Guest Additions(NW不要) |
PowerShell Direct(NW不要) |
|
スナップショット / エクスポート |
◎ vmrun snapshot
/ フォルダコピー |
◎ snapshot / export(OVA) |
◎ 実装済み |
|
Win11要件(TPM / Secure Boot) |
◎ |
◎ 7.0+ |
◎ |
|
ライセンス(商用利用) |
◎ 2024/11から全機能無償(キー不要) |
◎ 本体はGPLv3で無償。Extension Packは商用有償 |
◎ OS同梱 |
|
ホストのHyper-Vとの共存 |
△ WHPモードで動作 |
△ 動くが低速・不安定の報告あり |
― |
|
3Dスタックの成熟度 |
◎ 長年の実績 |
△ 近年まで不安定 |
― |
ホストのHyper-Vを切るかどうか
ホストでHyper-Vを有効にしたままだと、VMwareはWindows Hypervisor Platform(WHP)モードで動作する。
このモードで3Dアクセラレーションが効くかどうかは、公式ドキュメントで確認できなかった。
|
選択 |
影響 |
|
Hyper-Vを残す |
VMwareはWHPモードで動作。 |
|
Hyper-Vを切る |
3Dも性能も確実。 |
移行してみた結果
やったことは4つ。
- ホストのHyper-Vを無効化して再起動。
Win32_ComputerSystem.HypervisorPresent = False を確認し、VMwareがネイティブ仮想化で動く状態にした - スクリプトでWindows 11ゲストを自動作成(無人ブートISOの自作で「Press any key」を回避、Win11要件バイパス、VMware Toolsの無人導入)
- vmrun snapshot でクリーン状態のスナップショットを作成
- OpenGL描画の検証
まとめ
Hyper-Vは無償で手軽だが、ゲストにGPU/OpenGLが要る用途には向かない。
GUIを持つアプリのテスト自動化をVMでやるなら、最初からVMware Workstation Proを選ぶのが早い。
2024年11月から商用でも無償になったので、選ばない理由もあまりない。
Mesa3D(ソフトウェアOpenGL)案は結局使わずじまいだったが、 VMwareゲストでも同じ手が使えるので、保険としては残っている。