2017-06-25 34 views
5

मैं 5.2 से 5.4 के लिए एक पुराने Laravel निजी परियोजना का उन्नयन कर रहा हूँ करने के लिए Laravel BrowserKit पैकेज में PHPUnit \ फ्रेमवर्क \ बाधा \ बाधा ढूँढने में असमर्थ। लगता है कि 5.3 तक अपग्रेड ठीक हो गया है, लेकिन अब मैं 5.4 पर जा रहा हूं, मैंने एक समस्या में भाग लिया है।अपग्रेड करने के बाद 5.4

परियोजना वर्ष परीक्षण परत का इस्तेमाल किया तो मैं पिछली संगतता बनाए रखने के लिए 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 

गूगल इस के साथ ज्यादा प्रयोग नहीं किया गया है और त्रुटि संदेश बहुत रोशन नहीं कर रहा है:, मैं निम्न त्रुटि संदेश दिखाई। ऐसा लगता है कि नामस्थान के साथ कुछ करना है क्योंकि कक्षा PHPUnit\Framework\Constraint\Constraint मौजूद नहीं है, लेकिन मुझे यकीन नहीं है कि इस मुद्दे को कैसे हल किया जाए। मैंने PHPUnit के संस्करण को आवश्यकतानुसार 5.7 तक अपग्रेड कर दिया है, लेकिन इससे समस्या हल नहीं होती है। क्या कोई सुझाव दे सकता है कि समस्या क्या हो सकती है?

संपादित करें: बस 1.0 संस्करण पदावनति की कोशिश करने के लिए सोचा और कहा कि इसलिए हो सकता है संस्करण 2.0 PHPUnit 6 के साथ काम करने का इरादा है, अब के लिए समस्या को हल करने लगता है? फिर भी, उम्मीद है कि यह पोस्ट भविष्य में किसी की मदद करेगा।

उत्तर

2

1.0 laravel/ब्राउज़र-किट परीक्षण डाउनग्रेड करने से समस्या का समाधान करने के लिए लग रहा था, इसलिए मैं यह PHPUnit के लिए नामस्थान से कोई लेना देना कुछ अनुमान लगा रहा हूँ।

+0

मैं इस जवाब को पसंद करता हूं क्योंकि लैरवेल 5.4 के लिए अपग्रेड गाइड विशेष रूप से संस्करण 1 का उपयोग करने का उल्लेख करता है। * – vonec

4

मैं भी इस आज में फंस गयी।

~ 2.0 से ~ 1.0 तक लार्वेल/ब्राउज़र-किट-परीक्षण को डाउनग्रेड करने के बजाय, मैंने "phpunit/phpunit" को 5.7 से ~ 6.0 तक अपग्रेड किया और समस्या को ठीक किया।

मैं मानता हूँ कि यह PHPUnit नामस्थान से संबंधित है। 25 मई से लार्वेल/ब्राउज़र-किट-परीक्षण के लिए प्रतिबद्धता है जिसका शीर्षक "PHPUnit 6.0 नामांकित कक्षाओं का उपयोग करें" के शीर्षक से है।

संबंधित मुद्दे