मैं PHPUnit के साथ अपने Laravel एप्लिकेशन के लिए कुछ बुनियादी इकाई परीक्षण चलाने की कोशिश कर रहा हूं।लार्वेल: PHPUnit सब कुछ के लिए 404s का कारण बनता है
हालांकि, सभी HTTP अनुरोध 404 नहीं मिला HTTP स्थिति कोड, इसलिए हम पहली बाधा में विफल रहे हैं।
इंटरनेट trawling के बाद, मैं यह कैसे उपाय करने के बारे में जानकारी मिल गया है, लेकिन इनमें से अब तक कोई भी वास्तव में काम:
- जाँच हो रही है मैं नामित मार्ग सही ढंग से संदर्भित है।
- यह जांचकर कि इस रूट में नियंत्रक विधि है।
- यह जांचकर कि यह ब्राउज़र में काम करता है।
- मैं यह सुनिश्चित किया है अपने आवेदन यूआरएल को सही स्थानों पर ठीक से सेट है:
TestCase::$baseUrl
,Config->app->url
... इसके सेटhttp://localhost/myappfolder
- को मैं एक HTTP प्रतिक्रिया प्राप्त करने के लिए मेरी इकाई परीक्षण तरीकों के भीतर से विभिन्न तरीकों की कोशिश की है वस्तु। अब तक सभी परिणाम 404:
$this->route()
,$this->action()
,$this->call()
में परिणाम। - मैंने अपने नियंत्रकों से रूट सुरक्षा मिडलवेयर के सभी संदर्भों को हटाने का प्रयास किया है। मेरा मानना है कि यूनिट परीक्षण चलाते समय यह अक्षम है, लेकिन मैंने यह किया है क्योंकि मैं इस समस्या का निदान करने की कोशिश कर अपने प्रोवर्बियल बालों को खींच रहा हूं। कोई प्रभाव नहीं।
- मेरे एप्लिकेशन की जड़ फ़ाइल में कई PHP
require
एस हैं जिनमें छोटी रूट फ़ाइलें शामिल हैं। टेलर ओटवेल ने पहले कहा था कि इस तरह की एक रूट फाइल है, लेकिनrequire_once
युक्त इन 404 त्रुटियों का कारण बन सकता है। वहrequire
में बदलने का सुझाव देता है। कुछ डेवलपर्स रिपोर्ट करते हैं कि यह उनके लिए इसे ठीक करता है, लेकिन मेरा अभी भीrequire
है। मैंने मार्गों को मुख्य मार्ग फ़ाइल में वापस ले जाने का भी प्रयास किया है, लेकिन यह भी काम नहीं किया है।
जांच आमतौर पर असामान्य किया गया है:
- अगर मैं
Illuminate\Foundation\Testing\Concerns
भीतरroute()
विधि संपादित यूआरएल उत्पन्न बाहर मुद्रित करने के लिए, यह वास्तव में पूरी तरह से गठन:http://localhost/myprojectfolder/route-url-text
। ब्राउज़र में इस पृष्ठ का दौरा ठीक काम करता है। कर्ल के साथ इसका दौरा भी काम करता है। जेनरेट किए गए यूआरएल पर$this->call()
चल रहा है, और उसके बाद PHPUnit चल रहा है 404 फिर से दिखाता है। तो यह सिर्फ अजीब कुछ कर रहा है।
यहाँ कोड मैं इकाई परीक्षण लिपि में उपयोग कर रहा हूँ है:
public function testThis()
{
$response = $this->route('GET', 'myRouteName', [
'myParam' => 5
]);
dd($response->status()); // 404 - always!
}
इसकी तरह कुछ में कदम है और स्पष्ट रूप से एक 404 फेंक ... वास्तव में सराहना करते हैं अगर कोई प्रकाश डाला सकता है इस पर।
यह अजीब लग रहा है, लेकिन अगर आप सीधे बाद में एक और मार्ग कहते हैं तो क्या होता है? क्या आपको 200 मिलते हैं? मेरे पास अतीत में एक समान समस्या थी, लेकिन समाधान कभी नहीं मिला – Aron
यह अजीब लगता है ... लेकिन मैं सुझाव की सराहना करता हूं। मैंने उत्तराधिकार में कुछ अनुरोध किए हैं। अभी भी 404 प्राप्त करें। – kohloth
आह क्षमा करें मैं और अधिक सहायता नहीं कर सकता। लार्कास्ट मंच पर भी इस मुद्दे को पोस्ट करना सार्थक हो सकता है – Aron