public function __construct($envList, $defaultEnvName)
{
// define our name, and our description
$this->setName('target');
$this->setShortDescription('set the environment to test against');
$this->setLongDesc("If you have multiple test environments listed in your configuration files, " . "you can use this switch to choose which test environment to run the test(s) " . "against. If you omit this switch, Storyplayer will default to using your " . "computer's hostname as the value for <environment>." . PHP_EOL . PHP_EOL . "If you only have one test environment listed, then this switch has no " . "effect when used, and Storyplayer will always use the test environment " . "from your configuration file." . PHP_EOL . PHP_EOL . "See http://datasift.github.io/storyplayer/ " . "for how to configure and use multiple test environments.");
// what are the short switches?
$this->addShortSwitch('t');
// what are the long switches?
$this->addLongSwitch('target');
$this->addLongSwitch('test-environment');
// what is the required argument?
$requiredArgMsg = "the environment to test against; one of:" . PHP_EOL . PHP_EOL;
foreach ($envList->getEntryNames() as $envName) {
$requiredArgMsg .= "* {$envName}" . PHP_EOL;
}
$requiredArgMsg .= PHP_EOL . ' ';
$this->setRequiredArg('<environment>', $requiredArgMsg);
$this->setArgValidator(new Feature_TestEnvironmentConfigValidator($envList, $defaultEnvName));
$this->setArgHasDefaultValueOf($defaultEnvName);
// all done
}