خطا Cannot modify header در phpunit

پرسیده شده
فعالیت 1040 روز پیش
دیده شده 361 بار
0

سلام 

 

 

چرا تو phpunit وقتی میخواهیم برای متدی که توش چندتا header ست کردیم تست بنویسیم با خطای زیر مواجه میشم؟

 

Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\TDD\vendor\phpunit\phpunit\src\Util\Printer.php:۱۰۴)

 

و کاربرد annotation زیر چیه ؟

runInSeparateProcess@

 

فایل پیوست

علی.
علی.

8 تیر 00

1
حذف شده

سلام 

 

در رابطه با سوال اولتون باید بگم که این یکی از ارورهای معروف زبان PHP هستش که شما میتونید با لینک زیر متوجه بشید که چه کاری باید انجام بدید در این مورد.

 

https://academyit.net/articles/header-information-error

 

در مورد سوال دومتون هم این annotation برای این هستش که باعث میشه این تست شما در یک پروسس دیگه اجرا بشه .. به صورت پیش فرض همه تست‌ها داخل یک پروسس اجرا میشن و زمانی که شما این annotation رو میذارید یک پروسس دیگه‌ای ایجاد میشه و با استفاده از اون،  این تست ران میشه. دلایل زیادی هم داره که ایزوله بودن تست‌ها یکی از اونها هستش .. برای اینکه این موضوع رو بهتر درک کنید این لینک رو هم مطالعه کنید.

 

https://wpbrowser.wptestkit.dev/advanced-usage/run-in-separate-process

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

9 تیر 00

حذف شده
ممنون از پاسختون. این که قبل از ارسال header ها داره یه contentی ارسال میشه و باعث بروز این error میشه مشخصه. ولی این content داره توسط خود phpunit ارسال میشه که یکی از راه حل این مشکل استفاده از runInSeparateProcess@ هست می‌خواستم بدونم شما اطلاعاتی از این سازوکار دارین که چطوری استفاده از annotation بالا از بروز این error جلوگیری میکنه
علی.

9 تیر 00

حذف شده
بله،‌ یکی از راه‌حل‌های مشکل شما این مورد هستش که تستی که داره این کار رو انجام میده رو میتونید با این Annotation جدا کنید که مشکلی برنخورید . اگر باز هم نیاز به راهنمایی بیشتری داشتید عکس خطای برنامه به صورت کامل و همچنین تست خودتون رو برام ارسال کنید
مهرداد سامی

12 تیر 00