2017-12-05 2 views
0

私は作曲家とPHPUnitのCIでPHPソフトウェアを書いています。 PHP 5.6/7.0/7.1の異なるPHPバージョンに対してテストするように設定しました。PHPUnit CI異なるベンダーバージョンに対するテスト

しかし、私のソフトウェアにはサードパーティ製ソフトウェアの依存関係があります。 異なるベンダーモジュールに対してユニットテストを実行するように設定するにはどうすればよいですか?

たとえば、私のソフトウェアではsymfony/formsを〜2.8のどちらかにしたいと思います。

symfony 2.8と3.0の2つのテストを設定するにはどうすればよいですか?

私は唯一の方法はbefore_scriptのいくつかのものと考えています:コンポーザーはベンダーが必要です:〜specific_version?

答えて

2

次の例のように、複数のcomposer.jsonを使用することができます。

    • composer.5_6.json"require": {"php":">=5.6", "symfony/symfony":"~2.8"}付き)あなたのbefore_scriptで、その後

    と("require": {"php":">=7.0", "symfony/symfony":"~3.0"}付き)

  • composer.7_0.jsoncp composer.5_6.json composer.json && composer update
  • あなたの5.6ユニットは
  • rm composer.json && rm composer.lock
  • cp composer.7_0.json composer.json && composer update
  • はあなたの7.0ユニットを実行するテスト実行は十分に簡単思われる、うん
+0

をテストします。しかし、そのようにすれば、多くのコンポーザーファイルでリポジトリを膨らませることができます。 しばらく検索した後、Travis-CIにこれが見つかりました:https://docs.travis-ci.com/user/languages/php/#Testing-Against-Multiple-Versions-of-Dependencies – CappY

+0

はい外部CIシステムを使用する場合、これは別の質問です。 gitlab CIを使って、異なるバージョンのhttps://docs.gitlab.com/ce/ci/examples/php.html#test-against-different-php-versions-in-docker-buildsを試してみてください。トラビスと同じ。あなたはまた、作曲家を無視することもできます。*。json。作者vendor-dirをvendor5_6とvendor7_0に設定することもできます – Flo

関連する問題