Using VM is really useful for Functional level tests, when there is a good chance installing the code or running a function could bring down the whole system. Plus the VM often provides some extra tools useful in debug. But a VM is a SIMULATION, not the real thing.
For a System Test, whose purpose is to test the subject in a System Environment, a VM is usually not appropriate. You want the real system, not a simulation, with real system resources and real system load and interactions.