我在使用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"}
}
}
问题是特拉维斯无法找到我的autoload.php。这是我在travis日志中看到的,
无法打开文件&#34; /home/travis/build/nikhilkuria/nikeandphp/vendor/autoload.php"。
整个日志都是here。
这里似乎缺少什么?
答案 0 :(得分:6)
除了Travis配置缺少composer install
步骤之外,安装PHPUnit的方式也有问题。
script: phpunit
表示您使用phpunit
上$PATH
提供的全局安装的PHPUnit来调用PHPUnit。您很可能不希望这样,因为您已将PHPUnit列为composer.json
中的开发依赖项。要使用使用Composer安装的PHPUnit,您需要使用script: ./vendor/bin/phpunit
代替。
答案 1 :(得分:5)
正如我从您的日志输出中看到的那样,您没有运行composer install
命令,这就是您收到Cannot open file "/home/travis/build/nikhilkuria/nikeandphp/vendor/autoload.php".
错误消息的原因。
添加
before_script:
- composer install
答案 2 :(得分:0)
对于在composer.json中定义单个bin路径的情况,必须相应地调整phpunit的路径。
composer.json:
f = np.array([0,2,3,1,0,0,1])
f_ = np.array([1,1,2,2,2,3,6])
M_ = M[f_[:,None],f_]
.travis.yaml:
{
...
"config": {
"vendor-dir": ".Build/vendor",
"bin-dir": ".Build/bin",
},
...
}