在Travis Build中运行Phpunit的麻烦



我在从travis运行phpunit的麻烦。

我的travis配置很简单

language: php
php:
  - 7.0
  - 7.1
script: phpunit

和我的phpunit.xml如下,

<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php">
    <testsuites>
        <testsuite name="Basic Test Suite">
            <directory suffix=".php">./tests/</directory>
        </testsuite>
    </testsuites>
</phpunit>

和我的Composer.json

{
    "name": "nikhilkuria/nikeandphp",
    "description": "A PHP library used to work with Nike+ API",
    "type": "library",
    "authors": [
        {
            "name": "nikhilkuria",
            "email": "nikhilkuria@gmail.com"
        }
    ],
    "require": {
        "monolog/monolog": "^1.22"
    },
    "require-dev": {
      "phpunit/phpunit": "5.7.*"
    },
    "autoload": {
        "psr-4": {"NikeAndPhp\": "src/NikeAndPhp"}
}
}

问题是Travis无法找到我的autoLoad.php。这就是我在Travis日志中看到的,

无法打开文件"/home/travis/build/nikhilkuria/nikeandphp/vendor/autoload.php"。

整个日志都在这里。

这里似乎缺少什么?

正如我可以从您的日志输出中看到的,您没有运行composer install命令,这就是为什么您会收到Cannot open file "/home/travis/build/nikhilkuria/nikeandphp/vendor/autoload.php".错误消息。

添加

before_script:
    - composer install

除了您的travis配置缺少composer install步骤以外,安装Phpunit的方式也有问题。

script: phpunit表示您使用$PATH上的phpunit使用的全球安装Phpunit调用Phpunit。您很可能不希望这是您将Phpunit列为composer.json中的开发依赖性。要使用使用COMOSER安装的Phpunit,您需要使用script: ./vendor/bin/phpunit

单个bin-path

对于composer.json中的一个情况下定义了一个单独的bin路径,必须相应地调整phpunit的路径。

composer.json:

{
  ...
  "config": {
    "vendor-dir": ".Build/vendor",
    "bin-dir": ".Build/bin",
  },
  ...
}

.travis.yaml:

language: php  
...
script:
  - >
    echo;
    echo "Running unit tests";
    .Build/bin/phpunit --colors  -c .Build/vendor/.../UnitTests.xml
...

相关内容

  • 没有找到相关文章

最新更新