2017-06-25 31 views
5

古いLaravelパーソナルプロジェクトを5.2から5.4にアップグレードしています。 5.3へのアップグレードはうまくいきましたが、今は5.4に移行しています。問題が発生しました。5.4にアップグレードした後、Laravel BrowserKitパッケージのPHPUnit Framework Constraint Constraintが見つかりません

このプロジェクトでは古いテストレイヤを使用していたので、後方互換性を維持するためにBrowserKitテストパッケージをインストールしました。通常のテストケースを使用したモデルのテストが、正常に動作

<?php 

namespace Tests; 

use Laravel\BrowserKitTesting\TestCase as BaseTestCase; 

abstract class BrowserKitTestCase extends BaseTestCase 
{ 
    use CreatesApplication; 

    public $baseUrl = 'http://localhost'; 
} 

が、私はBrowserKitのテストケースを使用してテストのいずれかを実行すると:私はまたBrowserkitテストのため、以下の基本テストケースを作成しました

PHP Fatal error: Class 'PHPUnit\Framework\Constraint\Constraint' not found in /home/matthew/Projects/myproject/vendor/laravel/browser-kit-testing/src/Constraints/PageConstraint.php on line 10 
PHP Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable. in /home/matthew/Projects/myproject/vendor/laravel/framework/src/Illuminate/Container/Container.php:895 
Stack trace: 
#0 /home/matthew/Projects/myproject/vendor/laravel/framework/src/Illuminate/Container/Container.php(735): Illuminate\Container\Container->notInstantiable('Illuminate\\Cont...') 
#1 /home/matthew/Projects/myproject/vendor/laravel/framework/src/Illuminate/Container/Container.php(608): Illuminate\Container\Container->build('Illuminate\\Cont...') 
#2 /home/matthew/Projects/myproject/vendor/laravel/framework/src/Illuminate/Container/Container.php(575): Illuminate\Container\Container->resolve('Illuminate\\Cont...') 
#3 /home/matthew/Projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(728): Illuminate\Container\Container->make('Illuminate\\Cont...') 
#4 /home/matthew/Projects/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExce in /home/matthew/Projects/myproject/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 895 

Googleはこれをあまり使用されていないと、エラーメッセージがひどく、照明されていない:、私は、次のエラーメッセージが表示されます。クラスPHPUnit\Framework\Constraint\Constraintが存在しないように見えるので、ネームスペースと関係するようですが、問題の解決方法がわかりません。必要に応じてPHPUnitのバージョンを5.7にアップグレードしましたが、これで問題は解決されません。誰でも問題の原因を示唆することはできますか?

EDIT:バージョンを1.0にダウングレードしようと思っていますが、これは今のところ問題を解決するようです。バージョン2.0はPHPUnit 6で動作するように意図されていますか?それでも、この投稿は今後誰かを助けることを願っています。

答えて

2

laravel/browser-kit-testingを1.0にダウングレードすると問題が解決されたようですので、PHPUnitの名前空間と関係があると思います。

+0

Laravel 5.4のアップグレードガイドで具体的にバージョン1の使用について言及しているので、この回答が好きです。* – vonec

4

今日もこの問題に遭遇しました。

laravel/browser-kit-testingを〜2.0から〜1.0にダウングレードするのではなく、 "phpunit/phpunit"を5.7から6.0にアップグレードし、問題を修正しました。

私は、それがPHPUnit名前空間に関連していることに同意します。 5月25日から "PHPUnit 6.0名前空間を使用するクラス"というタイトルでlaravel/browser-kit-testingにコミットしました。

関連する問題