не удалось открыть поток: ошибка доступа в задании Jenkins - PullRequest
3 голосов
/ 01 января 2012

Отказ от ответственности: никогда не использовал php в моей жизни.Новичок в Unix и Jenkins

Я настроил Jenkins в своей системе Ubantu.PHPUnit - 3.6.5 и PHP 5.3.3

У меня есть файл сборки, который выполняет простой модульный тест.Все идет хорошо, когда я выполняю его из команды, например -

ant phpunit

Но когда я настраиваю задание на то же самое, чтобы оно выполнялось из задания Дженкинса, я сталкиваюсь с исключением -

phpunit:
     [exec] PHPUnit 3.6.5 by Sebastian Bergmann.
     [exec] 
     [exec] Configuration read from /home/tarunb/Documents/Tarun/mydemo/phpunit.xml.dist
     [exec] 
     [exec] PHP Warning:  fopen(/home/tarunb/Documents/Tarun/mydemo/build/logs/junit.xml): failed to open stream: Permission denied in /usr/share/php/PHPUnit/Util/Printer.php on line 106
     [exec] PHP Stack trace:
     [exec] PHP   1. {main}() /usr/bin/phpunit:0
     [exec] PHP   2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:44
     [exec] PHP   3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:125
     [exec] PHP   4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:187
     [exec] PHP   5. PHPUnit_Util_Log_JUnit->__construct() /usr/share/php/PHPUnit/TextUI/TestRunner.php:299
     [exec] PHP   6. PHPUnit_Util_Printer->__construct() /usr/share/php/PHPUnit/Util/Log/JUnit.php:141
     [exec] PHP   7. fopen() /usr/share/php/PHPUnit/Util/Printer.php:106
     [exec] .<?xml version="1.0" encoding="UTF-8"?>
     [exec] <testsuites>
     [exec]   <testsuite name="php-demo" tests="1" assertions="1" failures="0" errors="0" time="0.008163">
     [exec]     <testsuite name="MyClassTest" file="/home/tarunb/Documents/Tarun/mydemo/tests/MyClassTest.php" tests="1" assertions="1" failures="0" errors="0" time="0.008163">
     [exec]       <testcase name="testDemo" class="MyClassTest" file="/home/tarunb/Documents/Tarun/mydemo/tests/MyClassTest.php" line="7" assertions="1" time="0.008163"/>
     [exec]     </testsuite>
     [exec]   </testsuite>
     [exec] </testsuites>
     [exec] 
     [exec] 
     [exec] Time: 0 seconds, Memory: 4.50Mb
     [exec] 
     [exec] OK (1 test, 1 assertion)
     [exec] 
     [exec] Writing code coverage data to XML file, this may take a moment.PHP Warning:  DOMDocument::save(/home/tarunb/Documents/Tarun/mydemo/build/logs/clover.xml): failed to open stream: Permission denied in /usr/share/php/PHP/CodeCoverage/Report/Clover.php on line 348
     [exec] PHP Stack trace:
     [exec] PHP   1. {main}() /usr/bin/phpunit:0
     [exec] PHP 
     [exec] 
     [exec] Generating code coverage report, this may take a moment.  2. PHPUnit_TextUI_Command::main() /usr/bin/phpunit:44
     [exec] PHP   3. PHPUnit_TextUI_Command->run() /usr/share/php/PHPUnit/TextUI/Command.php:125
     [exec] PHP   4. PHPUnit_TextUI_TestRunner->doRun() /usr/share/php/PHPUnit/TextUI/Command.php:187
     [exec] PHP   5. PHP_CodeCoverage_Report_Clover->process() /usr/share/php/PHPUnit/TextUI/TestRunner.php:352
     [exec] PHP   6. DOMDocument->save() /usr/share/php/PHP/CodeCoverage/Report/Clover.php:348
     [exec] PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'Could not write to /home/tarunb/Documents/Tarun/mydemo/build/coverage/index.dashboard.html.' in /usr/share/php/Text/Template.php:150

Я понимаю, что это проблема с правами доступа, когда я пытаюсь выполнить php-модульный тест от Jenkins (который хорошо работает из команды вроде).Я начал Jenkins как пользователь sudo

sudo /etc/init.d/jenkins start

, но безрезультатно.Я что-то упускаю из виду?

1 Ответ

3 голосов
/ 01 января 2012

Дженкинс в режиме по умолчанию переключается на пользователя jenkins для выполнения всех задач, независимо от того, как вы запускаете демона.

Попробуйте sudo chown -R jenkins . для папок.

Длядля всей системы установки они будут под /var/lib/jenkins/jobs/yourjob/, но для вашей стороны это будет под /home/tarunb/Documents/Tarun/mydemo/.

Для получения дополнительной информации о том, как запустить Jenkins для проектов PHP, ознакомьтесь: jenkins-php.org и Setting up Jenkins for PHP Projects

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...