从bash脚本目录运行test/unit/RbcTest.php不起作用

从bash脚本目录运行test/unit/RbcTest.php不起作用,bash,jenkins,Bash,Jenkins,我的RbcTest.php位于test/unit目录中 在bash脚本中,“test”是一个关键字吗? 我使用vi编辑器,它的单词是黄色的,只要我将测试更改为测试,整个路径就是紫色的 export WORKSPACE=phoenix export SYMFONY=$WORKSPACE/usr/share/php/data/symfony (cd $WORKSPACE echo ${PWD} echo "6. Clearing the cache" ./symfony

我的RbcTest.php位于test/unit目录中 在bash脚本中,“test”是一个关键字吗? 我使用vi编辑器,它的单词是黄色的,只要我将测试更改为测试,整个路径就是紫色的

 export WORKSPACE=phoenix
 export SYMFONY=$WORKSPACE/usr/share/php/data/symfony
 (cd $WORKSPACE
    echo ${PWD}
    echo "6. Clearing the cache"
    ./symfony cc
    echo "7. Run unit test"
    php test/unit/RbcTest.php 
 )
警告和错误:

  7. Run unit test
  PHP Warning:  require_once(/usr/share/php/symfony/autoload/sfCoreAutoload.class.php): failed to open stream: No such file or directory in /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/config/ProjectConfiguration.class.php on line 3
  PHP Stack trace:
  PHP   1. {main}()   /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/test/unit/RbcTest.php:0
  PHP   2. require_once() /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/test/unit/RbcTest.php:3
  PHP   3. require_once() /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/test/bootstrap/unit.php:14
  PHP Fatal error:  require_once(): Failed opening required '/usr/share/php/symfony/autoload/sfCoreAutoload.class.php'    (include_path='.:/usr/share/php:/usr/share/pear') in   /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/config/ProjectConfiguration.class.php on line 3
  PHP Stack trace:
  PHP   1. {main}() /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/test/unit/RbcTest.php:0
  PHP   2. require_once() /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/test/unit/RbcTest.php:3
  PHP   3. require_once() /var/lib/jenkins/workspace/b32b733b59ba6be9884da7427bee5c95/phoenix/test/bootstrap/unit.php:14

感谢

在Bash脚本中,test确实是一个关键字,尽管在本例中vi只是被混淆了。您可以使用
test
,例如,在
if
子句中:

if test -f /etc/fstab; then
  echo "/etc/fstab exists"
fi
我从不使用这个键盘,因为你也可以用
[
来代替,我觉得它更漂亮:

if [ -f /etc/fstab ]; then
  echo "/etc/fstab exists"
fi
要避免将其作为关键字突出显示,请使用字符串:

php "test/unit/RbcTest.php"
至于为什么你的脚本不起作用,如果你能澄清你得到的是什么样的错误,那会有帮助。也许你可以试试这个:

  • 将Bash脚本标记为可执行文件:
    chmod+x script.sh
  • 通过将此项放在脚本顶部来指定解释器:
    #!/bin/bash

  • 我把它作为一个可执行文件,顶部有#!/bin/bash。这个脚本是Jenkins在单击build时执行的脚本。当我从命令行运行这个脚本时,一切正常。当Jenkins运行它时,我得到一个警告和错误。请参阅main post谢谢:)找不到PHP脚本包含的文件。你知道你在哪里有自己的脚本吗Symfony文件?什么是
    test/boostrap/unit.php
    包括?