This approach works even better with a firecracker-style linux kernel (faster to start), and with cosmopolitan binaries (so you can do qemu tests not just with linux): a bash cosmopolitan binary is useful if you want to test your bash shell scripts in qemu
Agree that documentation on qemu is very messy, especially on macOS. (I ran similar experiments with it earlier this year.)
See Vagrant for a more general solution, although you’ll need a plug-in [1] to use qemu.
[1] https://github.com/ppggff/vagrant-qemu
I have been using ubuntu cloud image with cloud-init to achieve something similar, but will try this method as well.
This approach works even better with a firecracker-style linux kernel (faster to start), and with cosmopolitan binaries (so you can do qemu tests not just with linux): a bash cosmopolitan binary is useful if you want to test your bash shell scripts in qemu