2014-09-29 50 views
3

在我composer.json我有以下require部分:作曲家忽略白名單

"require": { 
    "php": ">=5.4.0" 
}, 
"require-dev": { 
    "phpspec/phpspec": "~2.0", 
    "henrikbjorn/phpspec-code-coverage": "~0.2", 
    "satooshi/php-coveralls": "~0.6" 
}, 

現在我想用特拉維斯-CI,爲PHP 5.4和5.5,HHVM。但是,由於hhvm不支持xdebug,因此沒有代碼覆蓋率,所以我需要禁用hhvm構建的代碼覆蓋率。

爲此,我需要排除代碼覆蓋率安裝。但是,當我嘗試僅安裝運行composer update phpspec/phpspec的phpspec時,還會安裝其他兩個依賴項。不知何故,Composer似乎忽略了我的白名單。

這是我目前.travis.yml

language: php 

php: [5.4, 5.5, hhvm] 

install: 
    - if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]]; then composer update ; fi 
    - if [[ $TRAVIS_PHP_VERSION == 'hhvm' ]]; then composer update phpspec/phpspec; fi 

script: 
    - bin/phpspec run --format=pretty 
    - if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]]; then bin/coveralls -v ; fi 

我怎樣才能達到預定可使用白名單功能我的目標,或者是有另一種方式來實現這一目標?


注意,我要安裝henrikbjorn/phpspec-code-coverage,也不satooshi/php-coverallsHHVM特拉維斯建立。我想想要在PHP 5.4和5.5版本中安裝它們。

回答

2

我會遵循已接受答案的反向邏輯,因爲在測試時最好使用變通方法,而不是強制自己不要在本地生成覆蓋範圍。

language: php 
php: 
    - 5.4 
    - 5.5 
    - hhvm 

script: 
    - bin/phpspec run 
    - bash -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then bin/coveralls -v; fi;' 

before_script: 
    - bash -c 'if [ "$TRAVIS_PHP_VERSION" == "hhvm" ]; then composer remove "henrikbjorn/phpspec-code-coverage" --dev --no-update; fi;' 
    - composer install --prefer-source 
+0

我不知道刪除命令,但這確實更自然。 – nhaarman 2014-10-18 17:20:01

-1

嘗試運行

php composer.phar self-update 

php composer.phar update --with-dependencies 

按照文檔應該ingnore什麼是白名單

如果您想更新或鏈只更新了幾包,請執行以下

php composer.phar update "packagename" "packagename2" 
+0

感謝您的回答!但是,這並沒有解決這個事實,即我想從安裝中刪除軟件包(即只安裝'phpspec/phpspec')。 – nhaarman 2014-09-29 11:28:24

+0

更新我的答案 – 2014-09-29 11:29:44

+0

我已經嘗試過這種方法,但沒有工作,正如我的問題所述。 – nhaarman 2014-09-29 11:31:25

-1

嘗試

composer update --no-dev

,因爲當你運行作曲家更新在安裝一切「的要求-dev的」默認

+0

這將導致'phpspec'不能被安裝,這在Travis版本中顯然是需要的。 – nhaarman 2014-10-01 11:53:53

1

除非你需要的代碼覆蓋到其他地方工作,爲什麼不能簡單地修改.travis.yml使用composer require henrikbjorn/phpspec-code-coverage=~0.2需要的代碼覆蓋率:

language: php 

php: [5.4, 5.5, hhvm] 

install: 
    - if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]]; then composer require henrikbjorn/phpspec-code-coverage=~0.2 ; fi 

script: 
    - bin/phpspec run --format=pretty 
    - if [[ $TRAVIS_PHP_VERSION != 'hhvm' ]]; then bin/coveralls -v ; fi 
+0

啊,是的,這是一個很好的選擇!讓我嘗試! – nhaarman 2014-10-07 16:29:16

+0

謝謝,這個作品很好! – nhaarman 2014-10-07 17:11:02