2017-05-07 17 views
2

私の環境変数がtravis.ciのphpunitテストの中で読み取られない理由を理解できますか?Travis.ci環境変数がphpunitで読み取られない

私は、私が作業しているphp/javascriptアプリケーション用のtravisを使っていくつかの自動テストを書こうとしています。しかし、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関数呼び出しを試してみてください。 travis環境では$ _ENV変数は利用できません

関連する問題