How to Wrap UVM Environment and Test for Reuse as VIP?

Hi,

I’ve created a UVM environment and test, and I want to wrap them so my colleague can reuse them as a Verification IP (VIP). The goal is to allow them to instantiate everything as a single module or instance in their testbench, with the ability to configure and run it easily.

What’s the best way to structure this in UVM? Are there any examples or best practices for wrapping an env, test, and top-level configuration into a reusable VIP?

Thanks,