2012-01-01 108 views
3

声明:从未在我的生活中使用PHP。 Unix和Jenkins新手未能打开流:詹金斯的权限被拒绝错误

我在我的Ubantu系统上建立了Jenkins。 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单元测试时的权限问题(从命令行得很好)。我开始詹金斯作为sudo用户

sudo /etc/init.d/jenkins start 

但无济于事。我错过了一些明显的事情吗?

回答

3

Jenkins在默认模式下切换到jenkins用户执行所有执行,无论您如何启动恶魔。

尝试在文件夹上输入sudo chown -R jenkins .

对于系统范围的安装,它们将在/var/lib/jenkins/jobs/yourjob/之下,但对于您而言,它似乎在/home/tarunb/Documents/Tarun/mydemo/之下。

有关如何运行詹金斯PHP项目的更多信息,请查看:jenkins-php.orgSetting up Jenkins for PHP Projects

+0

你猜怎么着,我的确是跟着你的岗位设置。当我试着 - sudo chown -R jenkins:jenkins我得到了异常 - chown:在'jenkins:jenkins' – Tarun 2012-01-01 14:44:57

+0

之后缺少操作数,并且我在这两个目录中都得到了这个例外 -/var/lib/jenkins/jobs/yourjob /和/ home/tarunb/Documents/Tarun/mydemo/ – Tarun 2012-01-01 14:52:03

+1

尝试用'.'表示当前目录及其内的所有文件:'sudo chown -R jenkins:jenkins .' – 2012-01-01 17:46:07

相关问题