Я начинаю писать тесты PHPUnit, и я хотел бы, чтобы тесты были выполнены от машин разработчиков, а также с наших серверов. Машины разработчиков настраиваются по-другому, чем серверы и даже друг по-другому по сравнению с другом.
Для выполнения в этих различных местах, это, кажется, человек, который запускает тест, оказывается перед необходимостью указывать, куда это выполняется. Тест может тогда искать надлежащую конфигурацию машины, на которой это работает.
Я воображаю что-то как:
phpunit.bat-X johns_laptop unittest.php
или на альфа-сервере:
phpunit-X альфа unittest.php
В тесте я был бы в состоянии получить значение, если 'X' (или независимо от того, что это) параметр и знает, например, что путь к корню приложения для этой машины.
Не похоже, что командная строка допускает это - или я пропустил что-то?
Одним из способов осмотреть $ ARGV и $ ARGC. Что-то вроде:
<?php
require_once 'PHPUnit/Framework/TestCase.php';
class EnvironmentTest extends PHPUnit_Framework_TestCase {
public function testHasParam() {
global $argv, $argc;
$this->assertGreaterThan(2, $argc, 'No environment name passed');
$environment = $argv[2];
}
}
Тогда вы можете назвать ваш phpunittest, как это:
phpunit EnvironmentTest.php my-computer
Если вы хотите запустить тесты на удаленном компьютере, используйте SSH, а затем запустить его. На машине локали вам нужно только CD к вашему корню, а затем запустить phpunit.
user@local:/path/to/your/project$ phpunit
user@remote:/var/www/project$ phpunit
Редактировать : Вы говорите о конфигурации зависимой машины. (Что за конф-кстати?) Мое решение заключается в том, чтобы поставить эти конфигурации под то же самое, не версимо-контролируемое место, затем прочитайте / анализировать его временем выполнения, в необходимых установках METDS.