在Travis Build中运行PHPUnit时出现问题

Nik*_*ose 1 php phpunit travis-ci composer-php

我在Travis运行PHPUnit时遇到了一些麻烦.

我的travis配置很简单

language: php
php:
  - 7.0
  - 7.1
script: phpunit
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

还有我的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"}
}
}
Run Code Online (Sandbox Code Playgroud)

问题是特拉维斯无法找到我的autoload.php.这是我在travis日志中看到的,

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

整个日志都在这里.

这里似乎缺少什么?

Seb*_*ann 6

除了Travis配置缺少composer install步骤之外,安装PHPUnit的方式也有问题.

script: phpunit意味着你使用的全球安装PHPUnit的是可作为PHPUnit的调用phpunit$PATH.您很可能不希望这样,因为您已将PHPUnit列为您的开发依赖项composer.json.要使用使用Composer安装的PHPUnit,您需要使用script: ./vendor/bin/phpunit.


小智 5

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

before_script:
    - composer install
Run Code Online (Sandbox Code Playgroud)