首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Behat PHP命令可以在终端中工作,而不能在Jenkins中工作?

为什么Behat PHP命令可以在终端中工作,而不能在Jenkins中工作?
EN

Stack Overflow用户
提问于 2013-06-13 05:45:35
回答 1查看 808关注 0票数 0

我正在研究如何让Jenkins自动为我们运行Behat测试。所以我在我的本地机器上安装了Jenkins (运行在Ubuntu 12.10上)。现在我已经能够在本地机器上运行Behat几个星期了。

在我的命令行中,我切换到目录并运行以下命令:

代码语言:javascript
运行
复制
cd /virtualhosts/automated-testing/behat/ecash
php bin/behat -p phantomjs features/populate.feature

从这里,它列出了所有关于正在运行的步骤以及每个步骤是如何运行的语法。这很好用。然后,我将以下代码放入Jenkins:

代码语言:javascript
运行
复制
whoami
cd /virtualhosts/automated-testing/behat/ecash
pwd
php bin/behat -p phantomjs features/populate.feature

"whoami“返回"jenkins",这并不奇怪。"pwd“显示了我在上一步中指定的目录。然后,当它到达PHP命令时,它会给我以下内容:

代码语言:javascript
运行
复制
PHP Fatal error:  Interface 'Behat\Mink\Driver\DriverInterface' not found in /virtualhosts/automated-testing/behat/ecash/vendor/behat/mink-browserkit-driver/src/Behat/Mink/Driver/BrowserKitDriver.php on line 34

然后,它进入堆栈跟踪。所以这让我摸不着头脑。我想可能是它使用了不同的php.ini文件。所以我在Jenkins和我的终端上运行了"php -i“,得到了同样的文件。然后我想,也许它不喜欢用户。因此,我将Jenkins用户添加到我的组中(因为我创建了这些文件)。还是不管用。

那么,我到底做错了什么?为什么这不能正常工作呢?这没有任何意义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-14 04:15:05

事实证明,这个问题是一个权限问题。Jenkins以用户"jenkins“身份运行(显然)。但这些文件归我所有。因此,如果我将整个项目称为" Jenkins“作为所有者,我现在就可以让Jenkins来运行它。当然,现在我不能以自己的身份运行它。

但这并不是什么大问题。我只是以Jenkins用户的身份使用"sudo -u“从我的存储库中签出文件,并且我们的QA Jenkins安装可以整天运行Behat。

谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17075908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档