We need to satisfy three requirements: 1) run unit tests under different configurations (hadoop versions, minimr/local mode etc) to improve test coverage. 2) be able to select (include/exclude) tests for different configurations because some tests are targeted toward certain features that only available in certain Hadoop versions. 3) the results of all configurations could be the same or different. If they are different, we need to able to separate test results and compare them based on the input parameters. Currently there are two sets of configurations: 1) ant test configurations which usually control the Hadoop configurations, e.g., Hadoop shims version through -Dhadoop.version=, and Hadoop execution mode (minimr vs. local mode). This set of configurations have to be specified in ant commandline and it is global to all unit test cases. 2) hive configurations such as hive.input.format, hive.merge.mapfiles etc. This category also include those inherented from hadoop's configurations such as mapred.reduce.tasks. This set of configurations can be changed in individual test .q files. For each Hadoop level configurations above, we need to define a default set of hive configurations (e.g., stored in hive-site.xml). Proposed changes: 1) change the ant build.xml and QTestUtils.java to specify a set of include/exclude test files for a certain Hadoop configuration. 2) based on the hadoop configuration, pick up the default hive configuration file (hive-site.xml) if it is not customized. 3) change the ant test command line to add -Dhive.conf= to specify which hive configuration files to use instead of the default one. 4) allow ant test command line to specify hadoop execution mode (minimr/local) using -D.