我在从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
...