【问题标题】:Ant cannot find phpunitAnt 找不到 phpunit
【发布时间】:2012-05-14 21:09:14
【问题描述】:

我目前在一台 Windows 7 机器上的 localhost 上运行 Jenkins,并已将 Ant 设置为在构建时运行。

我的build.xml是根据http://jenkins-php.org/设置的。

当我安排构建时,它失败并出现以下错误。

构建失败 C:\..\build.xml:127: Execute failed: java.io.IOException: Cannot run program "phpunit": CreateProcess error=2, 系统找不到指定的文件

如果我尝试从命令行运行 ant,我会检索到相同的错误。

phpunit 已设置好并且可以从命令行正常工作。 (Windows Path 环境变量包括 'c:..\php',phpunit.bat 所在的位置)

关于如何设置 Ant、Jenkins 或 build.xml 以正确运行 phpunit 的任何想法?

谢谢

编辑: 下面的 Oers 解决方案在 cmd 中有效!现在我的问题是 Jenkins 无法识别 phpunit.bat。我对 Ant 有同样的问题,我必须在 Jenkins 系统设置中手动设置 ANT_HOME。不幸的是,同样设置 Path 变量不起作用。然后Ant再次被识别。关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: php ant jenkins phpunit


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      .bat 文件一般不能直接执行

      来自docs

      任务委托给 Runtime.exec 显然反过来 调用 ::CreateProcess。是后者定义了 Win32 函数 调用的确切语义。特别是,如果你不放 可执行文件的文件扩展名,仅查找“.EXE”文件, 不是“.COM”、“.CMD”或环境中列出的其他文件类型 变量 PATHEXT。那只被shell使用。

      请注意,.bat 文件通常不能直接执行。一 通常需要执行命令 shell 可执行 cmd 使用 /c 开关。

      <target name="phpunit">
        <exec executable="cmd">
          <arg value="/c"/>
          <arg value="phpunit.bat"/>
          <arg value="..."/>
        </exec>
      </target>
      

      【讨论】:

      • +1,只有一个问题:-p 有什么用?这不是一个有效的 phpunit 标志
      • @edorian 对不起,这只是文档中的复制和粘贴错误:D
      • 谢谢。这在 cmd 中确实有效!现在我的问题是 Jenkins 无法识别 phpunit.bat :/。我对 Ant 有同样的问题,我必须在 Jenkins 系统设置中手动设置 ANT_HOME。不幸的是,同样设置 Path 变量不起作用。然后Ant再次被识别。关于如何解决这个问题的任何想法?
      猜你喜欢
      • 2012-07-31
      • 2019-07-22
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 2017-02-24
      • 1970-01-01
      相关资源
      最近更新 更多