2016-07-24 169 views
1

我試圖從PHPUnit捕獲我的測試套件的輸出以確定是否發生故障。但是,當我嘗試將輸出存儲在bash變量中時,該變量始終爲空:PHPUnit - 將Bash腳本輸出到變量

PHPUNIT_RESULT=`vendor/bin/phpunit` 

if [ -z "$PHPUNIT_RESULT" ]; then 
     echo "something there! 
fi 

但是,該變量總是顯示爲空。

編輯:樣本輸出

PHPUnit 3.4.5 by Sebastian Bergmann. 

......F.......F 

Time: 0 seconds, Memory: 8.00Mb 

There was 1 failure: 

1) MyTest::testTemp 
Failed asserting that <boolean:false> is true. 

/path/to/myTest.php:68 

FAILURES! 
Tests: 4, Assertions: 5, Failures: 1, Incomplete: 1. 
+0

首先,一般來說,不鼓勵在'bash'中使用反引號來執行命令替換。改爲使用'$(...)'語法。無論哪種情況,'vendor/bin/phpunit'的預期輸出是什麼? –

+0

@SebastianLenartowicz感謝您的信息。我也用'$()'試過了,結果相同。我用示例輸出更新了問題。它是多線路輸出。 – djt

+2

你已經看到[this](https://stackoverflow.com/questions/29164652/simple-check-of-phpunit-result/29165024#29165024)? – Matteo

回答

0

如果有任何測試失敗,PHPUnit的將與非零狀態退出。您可以使用$?變量進行檢查。

./vendor/bin/phpunit /path/to/myTest.php 

if [ $? -ne 0 ]; then 
     echo "failed test" 
fi 
+0

感謝您的這一點。那正是我最終做的 – djt