1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-26 00:32:41 +01:00

get Config Manager to Unit engine and use getConfigFromAnySource

Summary:
somewhat related to D7271 and D7377.
Not actually broken right now, but might be worth it for completeness.

Test Plan: arc unit invokes PHPUnit; Can't test Csharp/XUnit on my end.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley

CC: aurelijus, Korvin, epriestley, aran

Differential Revision: https://secure.phabricator.com/D7381
This commit is contained in:
Aviv Eyal 2013-10-22 13:58:32 -07:00 committed by epriestley
parent ddbc14ade1
commit 4103bc423c
5 changed files with 29 additions and 9 deletions

View file

@ -40,6 +40,16 @@ abstract class ArcanistBaseUnitTestEngine {
} }
public function setConfigurationManager(
ArcanistConfigurationManager $configuration_manager) {
$this->configurationManager = $configuration_manager;
return $this;
}
public function getConfigurationManager() {
return $this->configurationManager;
}
final public function setWorkingCopy( final public function setWorkingCopy(
ArcanistWorkingCopyIdentity $working_copy) { ArcanistWorkingCopyIdentity $working_copy) {

View file

@ -26,11 +26,15 @@ final class CSharpToolsTestEngine extends XUnitTestEngine {
protected function loadEnvironment( protected function loadEnvironment(
$config_item = 'unit.csharp.xunit.binary') { $config_item = 'unit.csharp.xunit.binary') {
$working = $this->getWorkingCopy(); $config = $this->getConfigurationManager();
$this->xunitHintPath = $working->getConfig('unit.csharp.xunit.binary'); $this->xunitHintPath =
$this->cscoverHintPath = $working->getConfig('unit.csharp.cscover.binary'); $config->getConfigFromAnySource('unit.csharp.xunit.binary');
$this->matchRegex = $working->getConfig('unit.csharp.coverage.match'); $this->cscoverHintPath =
$this->excludedFiles = $working->getConfig('unit.csharp.coverage.excluded'); $config->getConfigFromAnySource('unit.csharp.cscover.binary');
$this->matchRegex =
$config->getConfigFromAnySource('unit.csharp.coverage.match');
$this->excludedFiles =
$config->getConfigFromAnySource('unit.csharp.coverage.excluded');
parent::loadEnvironment($config_item); parent::loadEnvironment($config_item);

View file

@ -257,8 +257,10 @@ final class PhpunitTestEngine extends ArcanistBaseUnitTestEngine {
*/ */
private function prepareConfigFile() { private function prepareConfigFile() {
$project_root = $this->projectRoot . DIRECTORY_SEPARATOR; $project_root = $this->projectRoot . DIRECTORY_SEPARATOR;
$config = $this->getConfigurationManager()->getConfigFromAnySource(
'phpunit_config');
if ($config = $this->getWorkingCopy()->getConfig('phpunit_config')) { if ($config) {
if (Filesystem::pathExists($project_root . $config)) { if (Filesystem::pathExists($project_root . $config)) {
$this->configFile = $project_root . $config; $this->configFile = $project_root . $config;
} else { } else {
@ -266,7 +268,9 @@ final class PhpunitTestEngine extends ArcanistBaseUnitTestEngine {
'found in ' . $project_root . $config); 'found in ' . $project_root . $config);
} }
} }
if ($bin = $this->getWorkingCopy()->getConfig('unit.phpunit.binary')) { $bin = $this->getConfigurationManager()->getConfigFromAnySource(
'unit.phpunit.binary');
if ($bin) {
if (Filesystem::binaryExists($bin)) { if (Filesystem::binaryExists($bin)) {
$this->phpunitBinary = $bin; $this->phpunitBinary = $bin;
} }

View file

@ -56,8 +56,9 @@ class XUnitTestEngine extends ArcanistBaseUnitTestEngine {
// Determine xUnit test runner path. // Determine xUnit test runner path.
if ($this->xunitHintPath === null) { if ($this->xunitHintPath === null) {
$this->xunitHintPath = $this->getWorkingCopy()->getConfig( $this->xunitHintPath =
'unit.xunit.binary'); $this->getConfigurationManager()->getConfigFromAnySource(
'unit.xunit.binary');
} }
if ($this->xunitHintPath === null) { if ($this->xunitHintPath === null) {
} }

View file

@ -143,6 +143,7 @@ EOTEXT
$this->engine = newv($engine_class, array()); $this->engine = newv($engine_class, array());
$this->engine->setWorkingCopy($working_copy); $this->engine->setWorkingCopy($working_copy);
$this->engine->setConfigurationManager($this->getConfigurationManager());
if ($everything) { if ($everything) {
$this->engine->setRunAllTests(true); $this->engine->setRunAllTests(true);
} else { } else {