2016-11-28 12 views
5

मैं लैरवेल 5.3.22 का उपयोग करता हूं और प्रत्येक परीक्षण के लिए माइग्रेटिंग/रोलिंग बैक का उपयोग करके अपने एप्लिकेशन को यूनिट-टेस्ट करना चाहता हूं क्योंकि यह here है।लैरवेल परीक्षण डेटाबेस कनेक्शन

'mysql' => [ 
      'driver' => 'mysql', 
      'host'  => env('DB_HOST', 'localhost'), 
      'database' => env('DB_DATABASE', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      ... 
     ], 

     'testing' => [ 
      'driver' => 'sqlite', 
      'database' => ':memory:', 
      'prefix' => '', 
     ], 

यह PHPUnit env config है:: इस कनेक्शन अनुभाग मेरी database.php config है

<php> 
    <env name="APP_ENV" value="testing"/> 
    <env name="CACHE_DRIVER" value="array"/> 
    <env name="SESSION_DRIVER" value="array"/> 
    <env name="QUEUE_DRIVER" value="sync"/> 
    <env name="DB_CONNECTION" value="testing"/> 
</php> 

PHPUnit config का तात्पर्य shoud कि laravel परीक्षण के लिए "परीक्षण" SQLite कनेक्शन का उपयोग, लेकिन यह प्राथमिक mysql कनेक्शन के साथ परवाह नहीं है और आगे बढ़ता है। यह एक विकल्प नहीं है, मेरे पास एक बड़ी और जटिल स्कीमा है और इसका उपयोग mysql के साथ यूनिट-परीक्षण के लिए नहीं किया जा सकता है। मैं कैसे आगे बढ़ूं? मैं क्वेरी बिल्डर को नकल नहीं कर सकता क्योंकि मुझे इसके परिणामों पर ज़ोर देना होगा।

उत्तर

2

मुझे समस्या का पता चला है, मैं अपने स्थानीय पर्यावरण में कॉन्फ़िगर कैशिंग का उपयोग कर रहा हूं और यह लैरवेल को phpunit कॉन्फ़िगरेशन का उपयोग करने से रोक रहा है। कॉन्फ़िगरेशन: स्पष्ट कारीगर कमांड की मदद की। मैंने अपने स्थानीय एनवी के लिए फ़ाइल कैश ड्राइवर को सरणी में भी बदल दिया है।

+0

बहुत बहुत धन्यवाद .. मैंने अभी मुझे बचाया –

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