2013-06-12 73 views
0

我正在研究如何讓詹金斯自動爲我們運行Behat測試。所以我在本地機器上安裝了Jenkins(運行在Ubuntu 12.10上)。我已經能夠從我的本地機器上運行Behat幾個星期了。爲什麼Behat PHP命令在終端中工作,但不在Jenkins中?

在我的命令行我切換到該目錄,並運行以下命令:

cd /virtualhosts/automated-testing/behat/ecash 
php bin/behat -p phantomjs features/populate.feature 

從這裏吐出來的都是關於哪些步驟正在運行的漂亮的語法以及每個做。這很好。然後我將下面的內容放入Jenkins:

whoami 
cd /virtualhosts/automated-testing/behat/ecash 
pwd 
php bin/behat -p phantomjs features/populate.feature 

「whoami」返回「jenkins」,在那裏並不意外。 「pwd」顯示我在上一步中指定的目錄。然後當它到達PHP命令它給了我這個:

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文件。所以我從詹金斯和我的終端運行「php -i」並獲得了相同的文件。然後我認爲它可能不喜歡用戶。所以我將Jenkins用戶添加到我的組中(因爲我創建了這些文件)。仍然不起作用。

Soooo,我在這裏做錯了什麼?爲什麼這不行?這沒有任何意義。

+0

您是如何通過作曲家安裝Behat/Mink和Behat/MinkBrowserKit軟件包的?你現在是否有Jenkins用戶的另一個項目目錄,並且這兩個軟件包都安裝在供應商文件夾中? –

回答

1

事實證明,問題是有點權限問題。詹金斯以用戶「jenkins」的身份運行(顯然)。但這些文件歸我所有。因此,如果我把整個項目當作「詹金斯」的主人,我現在可以讓詹金斯運行它。當然,現在我無法像自己一樣運行它。

但這並不算太大。我只是使用「sudo -u」作爲Jenkins用戶從我的存儲庫簽出文件,而我們的QA Jenkins安裝可以整天運行Behat。

謝謝!

相關問題