Parameterized test

hi
i know there is a specific solution how to implement a parametrized test, as stated in “Parameters, UVM, Coverage & Emulation – Take Two and Call Me in the Morning” from DVCon USA 2016.
my question is why not just use a test without any parameter but move the parameters to all the environment with ifdef from a general file. e.g class my_test extends uvm_test uvm_component_utils(my_test)
what are the Pros and Cons of these 2 methods?

In reply to Elyasaf Asraf:

The use of `ifdefs would require you to recompile your testbench to change your parameters. The goal of UVM is to compile once and run every test without recompiling.