PHPUnit在Travis-CI上失败但在本地传递
当我在本地机器上正常工作时,我在使用Tranet-CI时遇到麻烦.我使用相同的
PHP版本和
PHPUnit版本.
我的代码库是https://github.com/lncd/OAuth2 从存储库的根目录执行phpunit -c build / phpunit.xml在本地工作正常,测试按预期执行. 特拉维斯的日志是: $cd ~/builds $git clone --branch=develop --depth=100 --quiet git://github.com/lncd/OAuth2.git lncd/OAuth2 $cd lncd/OAuth2 $git checkout -qf 1c3b319aa6c8f5521d5123f0e6affca94ee35010 $phpenv global 5.3 $php --version PHP 5.3.19 (cli) (built: Dec 20 2012 09:57:38) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0,Copyright (c) 1998-2012 Zend Technologies with Xdebug v2.2.1,Copyright (c) 2002-2012,by Derick Rethans $phpunit -c build/phpunit.xml PHP Warning: require_once(src/OAuth2/Authentication/Server.php): failed to open stream: No such file or directory in /home/travis/builds/lncd/OAuth2/tests/authentication/server_test.php on line 3 PHP Stack trace: PHP 1. {main}() /home/travis/.phpenv/versions/5.3.19/bin/phpunit:0 PHP 2. PHPUnit_TextUI_Command::main() /home/travis/.phpenv/versions/5.3.19/bin/phpunit:46 PHP 3. PHPUnit_TextUI_Command->run() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/TextUI/Command.php:129 PHP 4. PHPUnit_TextUI_Command->handleArguments() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/TextUI/Command.php:138 PHP 5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/TextUI/Command.php:657 PHP 6. PHPUnit_Util_Configuration->getTestSuite() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/Util/Configuration.php:784 PHP 7. PHPUnit_Framework_TestSuite->addTestFiles() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/Util/Configuration.php:860 PHP 8. PHPUnit_Framework_TestSuite->addTestFile() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/Framework/TestSuite.php:416 PHP 9. PHPUnit_Util_Fileloader::checkAndLoad() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/Framework/TestSuite.php:355 PHP 10. PHPUnit_Util_Fileloader::load() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/Util/Fileloader.php:76 PHP 11. include_once() /home/travis/.phpenv/versions/5.3.19/share/pyrus/.pear/php/PHPUnit/Util/Fileloader.php:92 我已经玩过将require_once改为loadrequire_once’../../src/OAuth2/Authentication/Server.php’; (即从执行文件向下的两个目录),但这对Travis或我的本地设置不起作用. 我究竟做错了什么?或者这是特拉维斯的错误? 谢谢 编辑: 澄清这是目录结构: build /phpunit.xml src /OAuth2 /Authentication /Database.php /Server.php /Resource /Database.php /Server.php tests /authentication /database_mock.php /server_test.php /resource /database_mock.php /server_test.php 在/ tests目录下调用server_test.php的两个文件都试图从/ src目录下加载相应的Server.php和Database.php文件 解决方法
正如我从您的存储库中看到的那样,您需要使用当前目录中相关链接的文件.因此,PHPUnit尝试在您放置测试的同一目录中查找所需的文件,但找不到任何文件.您需要将require_once的用法更改为../../src/OAuth2/Resource/Server.php或为PHPUnit添加bootstrap.php文件.
下面我复制粘贴了我在PHPUnit和Composer中使用的bootstrap.php文件: <?php if (!@include __DIR__ . '/../vendor/autoload.php') { die('You must set up the project dependencies,run the following commands: wget http://getcomposer.org/composer.phar php composer.phar install'); } 有关bootstrap.php文件的更多信息,请访问此处:http://www.phpunit.de/manual/current/en/textui.html. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |