编程语言
首页 > 编程语言> > Travis.ci环境变量不能在phpunit中读取

Travis.ci环境变量不能在phpunit中读取

作者:互联网

有人可以帮助我理解为什么我的环境变量没有在travis.ci的phpunit测试中读取吗?

所以我正在尝试使用travis为我正在研究的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);
    }
}

?>

travis出口环境变量

$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测试中没有读取我的环境变量吗?我真的很感激.

解决方法:

请尝试使用getenv函数调用.在travis环境中,$_ENV变量不可用

标签:php,travis-ci,environment-variables,phpunit
来源: https://codeday.me/bug/20190823/1700411.html