How is "test1" instantiated in UVM express example 04?

In reply to gordon:

OK, that makes sense.

the other puzzling thing I see is that the “test” instantiates the “env”.

so, if I have multiple tests, each one should instantiate the “env”, but only one of the tests will actually get created by the factory.

I would have thought the env would be instantiated somewhere outside the test, and then the test could connect to it via the factory ::connect functions.
That way the env is always created independent of the test.

Maybe its a strange question, but things are so separated and sequestered in UVM, I’m surprized that “tests” and “env” are not also separated.