2017-05-07 20 views
2

有人可以幫助我理解爲什麼我的環境變量不被讀取從我的phpunit測試從travis.ci?Travis.ci環境變量不能讀取在phpunit

所以我試圖寫一些自動測試使用特拉維斯的一個PHP/JavaScript應用程序我正在努力。但是,當我編寫測試來檢查從travis讀入phpunit的環境變量時,它們失敗了。這意味着(據我所知),或者phpunit不能讀取環境變量,或者它們沒有正確傳遞給travis測試。

.travis.yml

language: php 
php: 
    - '7.0' 
    - '7.1' 

before_install: 
    - echo "extension=ldap.so" >>php --ini | grep "Loaded Configuration" | sed -e "s|.:\s||"`` 

install: 
    - cd test 
    - npm install 
    - cd .. 

script: 
    - echo $API_BASE_URL 
    - phpunit test/build_tests.php 

notifications: 
    on_success: never 
    on_failure: never 

PHPUnit的測試文件

<?php 

use PHPUnit\Framework\TestCase; 

class build_tests extends TestCase 
{ 
    public function testForEnv() 
    { 
     $this->assertEquals(isset($_ENV['API_BASE_URL']), true); 
     $this->assertEquals(isset($_ENV['DRINK_SERVER_URL']), true); 
     $this->assertEquals(isset($_ENV['LOCAL_DRINK_SERVER_URL']), true); 
     $this->assertEquals(isset($_ENV['RATE_LIMIT_DROPS_DROP']), true); 
     $this->assertEquals(isset($_ENV['DEBUG']), true); 
     $this->assertEquals(isset($_ENV['DEBUG_USER_UID']), true); 
     $this->assertEquals(isset($_ENV['DEBUG_USER_CN']), true); 
     $this->assertEquals(isset($_ENV['USE_LOCAL_DRINK_SERVER']), true); 
    } 
} 

?> 

特拉維斯導出環境變量的

$ Setting environment variables from repository settings 
$ export DRINK_SERVER_URL=https://drink.csh.rit.edu:8080 
$ export LOCAL_DRINK_SERVER_URL=http://localhost:3000 
$ export RATE_LIMIT_DROPS_DROP=3 
$ export DEBUG=true 
$ export DEBUG_USER_UID=[secure] 
$ export DEBUG_USER_CN=[secure] 
$ export USE_LOCAL_DRINK_SERVER=true 
$ export API_BASE_URL='api/index.php?request=' 

PHPUnit的結果

PHPUnit 6.1.1 by Sebastian Bergmann and contributors. 

F                 1/1 (100%) 

Time: 260 ms, Memory: 6.00MB 

There was 1 failure: 

1) build_tests::testForEnv 

Failed asserting that true matches expected false. 

/home/travis/build/devinmatte/WebDrink-2.0/test/build_tests.php:9 

FAILURES! 

Tests: 1, Assertions: 1, Failures: 1. 

有人可以幫助我瞭解爲什麼不看我的PHPUnit的測試裏面我的環境變量?我真的很感激。

+0

'getenv()'是偶然使用而不是'$ _EVV'嗎? http://stackoverflow.com/questions/3780866/why-is-my-env-empty – sman591

回答

3

嘗試使用getenv函數調用。在特拉維斯環境中,$ _ENV變量不可用