Tôi đang nâng cấp một dự án cá nhân Laravel cũ từ 5.2 lên 5.4. Nâng cấp lên 5.3 dường như đã OK, nhưng bây giờ tôi đang chuyển sang 5.4 Tôi đã gặp sự cố.Không thể tìm thấy PHPUnit Framework Constraint Constraint trong gói trình duyệt LaravelKit sau khi nâng cấp lên 5.4
Dự án đã sử dụng lớp thử nghiệm cũ nên tôi đã cài đặt gói thử nghiệm BrowserKit để duy trì khả năng tương thích ngược. Tôi cũng tạo ra các trường hợp thử nghiệm cơ bản sau đây cho các bài kiểm tra Browserkit:
<?php
namespace Tests;
use Laravel\BrowserKitTesting\TestCase as BaseTestCase;
abstract class BrowserKitTestCase extends BaseTestCase
{
use CreatesApplication;
public $baseUrl = 'http://localhost';
}
Các thử nghiệm cho các mô hình, trong đó sử dụng các trường hợp thử nghiệm bình thường, làm việc tốt, nhưng khi tôi chạy bất kỳ của các xét nghiệm có sử dụng các trường hợp thử nghiệm BrowserKit , Tôi thấy thông báo lỗi sau:
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 chưa được sử dụng nhiều và thông báo lỗi này không được chiếu sáng khủng khiếp. Nó có vẻ là một cái gì đó để làm với không gian tên vì lớp PHPUnit\Framework\Constraint\Constraint
dường như không tồn tại, nhưng tôi không chắc chắn làm thế nào để giải quyết vấn đề. Tôi đã nâng cấp phiên bản PHPUnit lên 5.7 nếu cần, nhưng điều đó không giải quyết được vấn đề. Bất cứ ai có thể đề xuất vấn đề có thể là gì?
CHỈNH SỬA: Chỉ cần thử hạ cấp phiên bản xuống 1.0 và điều đó dường như giải quyết được vấn đề hiện tại, vì vậy có lẽ phiên bản 2.0 được thiết kế để làm việc với PHPUnit 6? Tuy nhiên, hy vọng bài đăng này sẽ giúp một người nào đó trong tương lai.
Tôi thích câu trả lời này làm hướng dẫn nâng cấp cho Laravel 5.4, đề cập cụ thể đến việc sử dụng phiên bản 1. * – vonec