我不認爲以上的回答解決了我同樣的問題。
接受的答案並不完美。這樣,自定義選項應始終放在參數列表的末尾,並且沒有指示器表明它們是自定義選項。如果我需要的自定義選項的數量不是固定的,我應該編寫很多代碼來用正則表達式或類似的東西來解析自定義選項。
環境變量解決方案是好的,但並不自然。看起來很奇怪。
VAR1=aaa VAR2=bbb VAR3=ccc ./phpunit-custom-option CustomOptionTest.php
shell腳本加上setUp()解決方案與接受的方法共享同樣的弱點。可能你應該編碼很多來解析文件並處理不可預知數量的自定義選項。
我不認爲引導腳本是正確的解決方案。它可以用來自動處理骯髒的作品,每次做同樣的事情,但沒有處理好更換零件。
我不喜歡以上所有答案。
我自己也沒有好主意。但也許我所做的可以給你靈感。我在GitHub上分叉了phpunit項目,並修改了一些代碼,並使其支持自定義選項功能。
修改PHPUnit的版本,可以接受這樣的自定義選項:
./phpuint-custom-option --custom var1=value1 --custom var2=value2 CustomOptionTest.php
而且在測試中,您可以通過訪問訪問自定義選項超級全局變量$ _ SERVER
<?php
class CustomOptionTest extends PHPUnit_Framework_TestCase {
public function testCustomOption() {
$this->assertEquals('value1', $_SERVER['var1']);
$this->assertEquals('value2', $_SERVER['var2']);
}
}
並且您可以找到我的代碼here,並下載修改後的版本here(由c點擊頁面上的「查看完整文件」鏈接)。
僅供參考。 this article是類似的解決方案。
這聽起來很有希望,我會試試 – 2010-01-19 18:38:17
爲我工作。謝謝。 – 2010-01-19 19:28:16
phpunit也使用參數,這樣你根本不能使用它們 – jasir 2014-07-31 15:17:38