ਲਾਰਵੇਲ 8 ਵਿੱਚ ਕਾਰੀਗਰ ਟੈਸਟ ਕਮਾਂਡ ਗਲਤੀ ਨੂੰ ਸਮਝਣਾ
Laravel 8 ਅਤੇ PHP 8.1 ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਇੱਕ ਆਮ ਸਮੱਸਿਆ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ "ਕਮਾਂਡ 'ਟੈਸਟ' ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ" ਗਲਤੀ ਹੈ। ਇਹ ਸਮੱਸਿਆ ਅਕਸਰ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦੀ ਹੈ ਜਦੋਂ `php artisan test` ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਵੈਚਲਿਤ ਟੈਸਟ ਚਲਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਪਹਿਲੀ ਨਜ਼ਰ ਵਿੱਚ, ਇਹ ਇੱਕ ਸਿੱਧੇ ਗੁੰਮ ਕਮਾਂਡ ਮੁੱਦੇ ਵਾਂਗ ਜਾਪਦਾ ਹੈ, ਪਰ ਇਸ ਵਿੱਚ ਹੋਰ ਵੀ ਬਹੁਤ ਕੁਝ ਹੈ.
ਬਹੁਤ ਸਾਰੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਡਿਵੈਲਪਰ ਟੈਸਟਿੰਗ ਅਪਵਾਦਾਂ ਨੂੰ ਬਿਹਤਰ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣ ਲਈ `ਨੂਨੋਮਾਦੁਰੋ/ਟੱਕਰ` ਪੈਕੇਜ ਸ਼ਾਮਲ ਕਰਦੇ ਹਨ। ਹਾਲਾਂਕਿ, ਇਹ Laravel, PHP, ਅਤੇ PHPUnit ਵਿਚਕਾਰ ਸੰਸਕਰਣ ਅਨੁਕੂਲਤਾ ਦੇ ਕਾਰਨ ਜਟਿਲਤਾ ਦੀ ਇੱਕ ਹੋਰ ਪਰਤ ਪੇਸ਼ ਕਰਦਾ ਹੈ। ਜਿਵੇਂ ਕਿ PHP ਦਾ ਵਿਕਾਸ ਜਾਰੀ ਹੈ, ਨਵੇਂ ਸੰਸਕਰਣ ਕਈ ਵਾਰ ਪੁਰਾਣੀਆਂ ਨਿਰਭਰਤਾਵਾਂ ਨੂੰ ਤੋੜ ਦਿੰਦੇ ਹਨ।
ਮੁੱਖ ਮੁੱਦਾ `nunomaduro/collision` ਅਤੇ PHP 8.1 ਦੁਆਰਾ ਲੋੜੀਂਦੇ PHPUnit ਸੰਸਕਰਣ ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਟਕਰਾਅ ਤੋਂ ਪੈਦਾ ਹੁੰਦਾ ਹੈ। ਟੱਕਰ ਪੈਕੇਜ PHPUnit 9 ਦੀ ਉਮੀਦ ਕਰਦਾ ਹੈ, ਪਰ PHP 8.1 ਨੂੰ PHPUnit 10 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਅਨੁਕੂਲਤਾ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਹੁੰਦੀਆਂ ਹਨ ਜੋ ਟੈਸਟ ਕਮਾਂਡ ਨੂੰ ਉਮੀਦ ਅਨੁਸਾਰ ਚੱਲਣ ਤੋਂ ਰੋਕਦੀਆਂ ਹਨ।
ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਇਸ ਮੁੱਦੇ ਦੇ ਮੂਲ ਕਾਰਨ ਦੀ ਪੜਚੋਲ ਕਰਾਂਗੇ, ਇਹਨਾਂ ਪੈਕੇਜਾਂ ਵਿਚਕਾਰ ਅਨੁਕੂਲਤਾ ਸੰਬੰਧੀ ਚਿੰਤਾਵਾਂ 'ਤੇ ਚਰਚਾ ਕਰਾਂਗੇ, ਅਤੇ ਤੁਹਾਡੇ ਟੈਸਟਾਂ ਨੂੰ PHP 8.1 ਦੇ ਨਾਲ Laravel 8 ਵਿੱਚ ਦੁਬਾਰਾ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਚਲਾਉਣ ਲਈ ਇੱਕ ਹੱਲ ਪ੍ਰਦਾਨ ਕਰਾਂਗੇ।
| ਹੁਕਮ | ਵਰਤੋਂ ਅਤੇ ਵਰਣਨ ਦੀ ਉਦਾਹਰਨ |
|---|---|
| composer show | ਇਹ ਕਮਾਂਡ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੀ ਨਿਰਭਰਤਾ ਦੇ ਸਥਾਪਿਤ ਸੰਸਕਰਣਾਂ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ। ਇਸ ਸੰਦਰਭ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ ਇਹ ਜਾਂਚ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ PHPUnit ਦਾ ਕਿਹੜਾ ਸੰਸਕਰਣ ਸਥਾਪਤ ਹੈ, ਜੋ ਕਿ ਸੰਸਕਰਣ ਦੀ ਬੇਮੇਲਤਾ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। |
| composer clear-cache | ਕੈਸ਼ ਨੂੰ ਸਾਫ਼ ਕਰਦਾ ਹੈ ਜੋ ਕੰਪੋਜ਼ਰ ਨਿਰਭਰਤਾ ਸਥਾਪਨਾਵਾਂ ਨੂੰ ਤੇਜ਼ ਕਰਨ ਲਈ ਵਰਤਦਾ ਹੈ। ਇਹ ਨਿਰਭਰਤਾ ਵਿਵਾਦਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਜਾਂ ਹੱਲ ਕਰਨ ਵੇਲੇ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਕੰਪੋਜ਼ਰ ਨੂੰ ਪੈਕੇਜਾਂ ਦੀਆਂ ਨਵੀਆਂ ਕਾਪੀਆਂ ਲਿਆਉਣ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ। |
| composer update | composer.json ਫਾਈਲ ਦੇ ਅਨੁਸਾਰ ਪ੍ਰੋਜੈਕਟ ਦੀ ਨਿਰਭਰਤਾ ਨੂੰ ਅਪਡੇਟ ਕਰਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ ਅਨੁਕੂਲਤਾ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਸੰਸਕਰਣ ਦੀਆਂ ਰੁਕਾਵਟਾਂ ਨੂੰ ਸੋਧਣ ਤੋਂ ਬਾਅਦ PHPUnit ਅਤੇ nunomaduro/collision ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਲਾਗੂ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। |
| php artisan make:test | Laravel ਦੇ ਟੈਸਟ ਸੂਟ ਵਿੱਚ ਇੱਕ ਨਵੀਂ ਟੈਸਟ ਫਾਈਲ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ ਯੂਨਿਟ ਜਾਂ ਫੀਚਰ ਟੈਸਟ ਬਣਾਉਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਹੱਲ ਵਿੱਚ ਦਿਖਾਇਆ ਗਿਆ ਹੈ ਜਿੱਥੇ ਵਾਤਾਵਰਣ ਸੈੱਟਅੱਪ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟ ਲਾਗੂ ਕੀਤੇ ਜਾਂਦੇ ਹਨ। |
| php artisan test | Laravel ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਟੈਸਟ ਸੂਟ ਚਲਾਉਂਦਾ ਹੈ। ਇਹ ਇਸ ਲੇਖ ਵਿੱਚ ਮੁੱਖ ਮੁੱਦਾ ਹੈ, ਜਿੱਥੇ ਕਮਾਂਡ ਇੱਕ PHPUnit ਅਤੇ ਟੱਕਰ ਸੰਸਕਰਣ ਦੇ ਮੇਲ ਨਾ ਹੋਣ ਕਾਰਨ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ। |
| brew install php@8.0 | ਹੋਮਬਰੂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ macOS ਸਿਸਟਮਾਂ ਲਈ ਖਾਸ, ਇਹ ਕਮਾਂਡ PHP 8.0 ਨੂੰ ਸਥਾਪਿਤ ਕਰਦੀ ਹੈ। ਇਹ ਇੱਕ ਹੱਲ ਹੈ ਜਦੋਂ PHP ਨੂੰ ਡਾਊਨਗ੍ਰੇਡ ਕਰਨਾ PHPUnit 9 ਅਤੇ nunomaduro/collision 5.0 ਵਰਗੀਆਂ ਨਿਰਭਰਤਾਵਾਂ ਨਾਲ ਮੇਲ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ। |
| brew link --overwrite | ਇਹ ਕਮਾਂਡ ਇੱਕ ਖਾਸ PHP ਸੰਸਕਰਣ (ਇਸ ਕੇਸ ਵਿੱਚ PHP 8.0) ਨੂੰ ਤੁਹਾਡੇ ਸਿਸਟਮ ਨਾਲ ਲਿੰਕ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਇਹ ਮੌਜੂਦਾ PHP ਸੰਸਕਰਣ ਨੂੰ ਓਵਰਰਾਈਟ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਵਾਤਾਵਰਣ ਵਿੱਚ ਸੰਸਕਰਣ ਦੇ ਮੇਲ ਖਾਂਦਾ ਹੈ। |
| response->response->assertStatus() | ਇੱਕ Laravel-ਵਿਸ਼ੇਸ਼ ਟੈਸਟਿੰਗ ਵਿਧੀ। ਇਹ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ HTTP ਜਵਾਬ ਸਥਿਤੀ ਉਮੀਦ ਅਨੁਸਾਰ ਹੈ. ਉਦਾਹਰਨ ਵਿੱਚ, ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਹੋਮਪੇਜ ਰੂਟ ਇੱਕ ਸਥਿਤੀ ਕੋਡ 200 ਵਾਪਸ ਕਰਦਾ ਹੈ, ਸਹੀ ਸਰਵਰ ਸੰਰਚਨਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ। |
| php -v | ਮੌਜੂਦਾ PHP ਸੰਸਕਰਣ ਦਿਖਾਉਂਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ ਇਸ ਗੱਲ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੈ ਕਿ ਸਹੀ PHP ਸੰਸਕਰਣ ਵਰਤੋਂ ਵਿੱਚ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਜਦੋਂ PHP ਦੇ ਵੱਖ-ਵੱਖ ਸੰਸਕਰਣਾਂ ਅਤੇ ਨਿਰਭਰਤਾਵਾਂ ਵਿਚਕਾਰ ਅਨੁਕੂਲਤਾ ਮੁੱਦਿਆਂ ਨੂੰ ਹੱਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ। |
Laravel 8 ਵਿੱਚ PHPUnit ਅਤੇ ਟੱਕਰ ਅਨੁਕੂਲਤਾ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਪਹਿਲੀ ਸਕ੍ਰਿਪਟ ਜੋ ਮੈਂ ਪ੍ਰਦਾਨ ਕੀਤੀ ਹੈ ਉਹ ਪ੍ਰੋਜੈਕਟ ਦੀ ਨਿਰਭਰਤਾ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਕੇ "ਕਮਾਂਡ 'ਟੈਸਟ' ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ" ਗਲਤੀ ਦੇ ਮੂਲ ਮੁੱਦੇ ਨੂੰ ਸੰਬੋਧਿਤ ਕਰਦੀ ਹੈ। ਇਸ ਤਰੁੱਟੀ ਦਾ ਮੁੱਖ ਕਾਰਨ PHP, PHPUnit, ਅਤੇ nunomaduro/collision ਵਿਚਕਾਰ ਇੱਕ ਸੰਸਕਰਣ ਬੇਮੇਲ ਹੈ। ਹੱਲ ਵਰਤ ਕੇ PHPUnit ਦੇ ਮੌਜੂਦਾ ਸੰਸਕਰਣ ਦੀ ਜਾਂਚ ਕਰਕੇ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਹੁਕਮ. ਇਹ ਕਦਮ ਇੰਸਟੌਲ ਕੀਤੇ ਸੰਸਕਰਣ ਦੀ ਪਛਾਣ ਕਰਨ ਅਤੇ ਇਹ ਸਮਝਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਕੀ ਇਹ ਤੁਹਾਡੇ Laravel ਸੈੱਟਅੱਪ ਲਈ ਲੋੜੀਂਦੇ ਸੰਸਕਰਣ ਨੂੰ ਪੂਰਾ ਕਰਦਾ ਹੈ। ਸੰਸਕਰਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ composer.json ਫਾਈਲ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕਰਦੇ ਹਾਂ, ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦੇ ਹੋਏ ਕਿ ਚੱਲਦੇ ਸਮੇਂ ਗਲਤੀ ਤੋਂ ਬਚਣ ਲਈ PHPUnit ਅਤੇ Collision ਦੇ ਸਹੀ ਸੰਸਕਰਣ ਸਥਾਪਤ ਕੀਤੇ ਗਏ ਹਨ। .
ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਸਰਵੋਤਮ ਹੱਲ ਲਈ PHPUnit 9.5 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜੋ ਕਿ nunomaduro/collision 5.0 ਨਾਲ ਇਕਸਾਰ ਹੁੰਦਾ ਹੈ। composer.json ਫਾਈਲ ਨੂੰ ਐਡਜਸਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਚਲਾਉਂਦੇ ਹਾਂ ਕਮਾਂਡ, ਜੋ ਲੋੜੀਂਦੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਲਾਗੂ ਕਰਦੀ ਹੈ ਅਤੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਪੈਕੇਜ ਸੰਸਕਰਣਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕਰਦੀ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਇੱਕ ਵਿਕਲਪਿਕ ਹੱਲ ਹੈ ਜਿੱਥੇ Collision ਨੂੰ ਵਰਜਨ 6.x ਵਿੱਚ ਅੱਪਗ੍ਰੇਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, PHPUnit 10 ਦੇ ਨਾਲ ਅਨੁਕੂਲਤਾ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹੋਏ। ਇਹ ਪਹੁੰਚ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿਉਂਕਿ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਪ੍ਰੋਜੈਕਟ PHP 8.1 ਦੇ ਅਨੁਕੂਲ ਹੋਣ ਦੇ ਨਾਲ ਨਵੀਨਤਮ ਟੈਸਟਿੰਗ ਟੂਲਸ ਨਾਲ ਅੱਪਡੇਟ ਰਹਿੰਦਾ ਹੈ।
ਦੂਜਾ ਹੱਲ PHP ਸੰਸਕਰਣ ਨੂੰ ਡਾਊਨਗ੍ਰੇਡ ਕਰਨ ਦੀ ਪੜਚੋਲ ਕਰਦਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ PHP 8.0 ਲਈ। ਇਹ ਪਹੁੰਚ ਵਾਤਾਵਰਣ ਨੂੰ ਨਿਰਭਰਤਾ ਦੇ ਨਾਲ ਇਕਸਾਰ ਕਰਕੇ ਸੰਸਕਰਣ ਦੀ ਬੇਮੇਲਤਾ ਨੂੰ ਹੱਲ ਕਰਦੀ ਹੈ। ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਮਾਂਡ, ਅਸੀਂ PHP 8.0 ਇੰਸਟਾਲ ਕਰਦੇ ਹਾਂ, ਅਤੇ ਫਿਰ ਕਮਾਂਡ ਸਰਗਰਮ PHP ਸੰਸਕਰਣ ਨੂੰ 8.0 ਵਿੱਚ ਬਦਲਦੀ ਹੈ। ਇਹ ਜ਼ਰੂਰੀ ਹੈ ਕਿਉਂਕਿ PHP 8.1 PHPUnit 10 ਦੀ ਮੰਗ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਟੱਕਰ 5.0 ਨਾਲ ਟਕਰਾਅ ਹੈ। PHP ਨੂੰ ਡਾਊਨਗ੍ਰੇਡ ਕਰਕੇ, ਅਸੀਂ ਸਾਰੇ ਲੋੜੀਂਦੇ ਟੂਲਸ ਦੇ ਸੰਸਕਰਣਾਂ ਨੂੰ ਇਕਸਾਰ ਕਰਦੇ ਹਾਂ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਬਿਨਾਂ ਕਿਸੇ ਤਰੁੱਟੀ ਦੇ ਟੈਸਟ ਚਲਾ ਸਕਦੇ ਹੋ।
ਅੰਤ ਵਿੱਚ, ਮੈਂ ਵਰਤਦੇ ਹੋਏ ਯੂਨਿਟ ਟੈਸਟ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਅਤੇ . ਇਹ ਕਮਾਂਡਾਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਜ਼ਰੂਰੀ ਹਨ ਕਿ ਤੁਹਾਡੇ ਲਾਰਵੇਲ ਵਾਤਾਵਰਣ ਨੂੰ ਟੈਸਟਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਯੂਨਿਟ ਟੈਸਟ ਇਹ ਤਸਦੀਕ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ ਕਿ PHP, PHPUnit, ਅਤੇ Collision ਵਿੱਚ ਕੀਤੀਆਂ ਤਬਦੀਲੀਆਂ ਨੇ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਹੱਲ ਕੀਤਾ ਹੈ। ਸਧਾਰਨ ਟੈਸਟਾਂ ਨੂੰ ਚਲਾ ਕੇ ਜੋ ਇੱਕ ਸਹੀ ਸਥਿਤੀ ਦਾ ਦਾਅਵਾ ਕਰਦੇ ਹਨ ਜਾਂ HTTP ਜਵਾਬਾਂ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਨ, ਅਸੀਂ ਪੁਸ਼ਟੀ ਕਰਦੇ ਹਾਂ ਕਿ ਟੈਸਟਿੰਗ ਸੈੱਟਅੱਪ ਉਮੀਦ ਅਨੁਸਾਰ ਕੰਮ ਕਰਦਾ ਹੈ। ਯੂਨਿਟ ਟੈਸਟਾਂ ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਦੀ ਇਹ ਪ੍ਰਕਿਰਿਆ ਇੱਕ ਵਧੀਆ ਅਭਿਆਸ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਕਿਸੇ ਵੀ ਵਾਤਾਵਰਣ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਤੋਂ ਬਾਅਦ ਸੁਚਾਰੂ ਢੰਗ ਨਾਲ ਚੱਲਦਾ ਹੈ।
ਨਿਰਭਰਤਾ ਨੂੰ ਅਡਜੱਸਟ ਕਰਕੇ ਲਾਰਵੇਲ ਆਰਟੀਸਨ ਟੈਸਟ ਕਮਾਂਡ ਗਲਤੀ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਬੈਕ-ਐਂਡ ਲਈ ਕੰਪੋਜ਼ਰ ਅਤੇ ਨਿਰਭਰਤਾ ਵਿਵਸਥਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਹੱਲ
// First, check the current PHPUnit version in composer.jsoncomposer show phpunit/phpunit// If the version is incorrect, modify composer.json to require PHPUnit 9 (for Collision)// Add this in the require-dev section of composer.json"phpunit/phpunit": "^9.5"// Ensure that nunomaduro/collision is updated to match with PHPUnit 9"nunomaduro/collision": "^5.0"// Run composer update to install the new versionscomposer update// Now you should be able to run the tests usingphp artisan test// If you want to force the use of PHPUnit 10, upgrade nunomaduro/collision to 6.x"nunomaduro/collision": "^6.0"// Run composer update again to apply the changescomposer update
PHP ਨੂੰ ਡਾਊਨਗ੍ਰੇਡ ਕਰਕੇ Laravel PHPUnit ਸੰਸਕਰਣ ਬੇਮੇਲ ਹੈਂਡਲ ਕਰਨਾ
ਅਨੁਕੂਲਤਾ ਲਈ PHP ਸੰਸਕਰਣ ਨੂੰ ਡਾਊਨਗ੍ਰੇਡ ਕਰਕੇ ਹੱਲ
// Step 1: Check current PHP versionphp -v// Step 2: If using PHP 8.1, consider downgrading to PHP 8.0// This allows compatibility with PHPUnit 9, which is required by Collision 5.0// Step 3: Install PHP 8.0 using your package manager (e.g., Homebrew for Mac)brew install php@8.0// Step 4: Switch your PHP version to 8.0brew link --overwrite php@8.0// Step 5: Verify the new PHP versionphp -v// Step 6: Clear composer cache and update dependenciescomposer clear-cachecomposer update// Step 7: Now you can run artisan tests without version issuesphp artisan test
ਕਾਰੀਗਰ ਟੈਸਟ ਕਮਾਂਡ ਲਈ ਹੱਲ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ
ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਟੈਸਟ ਕਮਾਂਡ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ PHPUnit ਯੂਨਿਟ ਟੈਸਟ
// Create a simple unit test in Laravel to check basic functionalityphp artisan make:test ExampleTest// In tests/Feature/ExampleTest.php, write a simple testpublic function testBasicTest() {$this->assertTrue(true);}// Run the test to ensure it works with PHPUnitphp artisan test// Another test for checking HTTP responsepublic function testHomePage() {$response = $this->get('/');$response->assertStatus(200);}// Run the tests again to validate this new scenariophp artisan test
ਲਾਰਵੇਲ 8 ਟੈਸਟਿੰਗ ਵਾਤਾਵਰਣ ਵਿੱਚ ਨਿਰਭਰਤਾ ਵਿਵਾਦਾਂ ਦੀ ਪੜਚੋਲ ਕਰਨਾ
ਸਮੱਸਿਆ ਦਾ ਨਿਪਟਾਰਾ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਨਾਜ਼ੁਕ ਪਹਿਲੂ PHP 8.1 ਦੇ ਨਾਲ Laravel 8 ਵਿੱਚ ਕਮਾਂਡ ਇਹ ਸਮਝ ਰਹੀ ਹੈ ਕਿ ਨਿਰਭਰਤਾ ਕਿਵੇਂ ਪਰਸਪਰ ਪ੍ਰਭਾਵ ਪਾਉਂਦੀ ਹੈ। ਲਾਰਵੇਲ, ਇੱਕ ਫਰੇਮਵਰਕ ਦੇ ਰੂਪ ਵਿੱਚ, ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਕਈ ਥਰਡ-ਪਾਰਟੀ ਲਾਇਬ੍ਰੇਰੀਆਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਇਹ ਲਾਇਬ੍ਰੇਰੀਆਂ, ਜਿਵੇਂ ਕਿ ਅਤੇ , PHP ਸੰਸਕਰਣ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ, ਤਰੁੱਟੀਆਂ ਪੈਦਾ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਇਹ ਸੰਸਕਰਣ ਬੇਮੇਲ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਲਾਰਵੇਲ ਇਸਦੇ ਭਾਗਾਂ ਨੂੰ ਅੱਪਗਰੇਡ ਕਰਦਾ ਹੈ ਜਾਂ ਜਦੋਂ PHP ਦੇ ਨਵੇਂ ਸੰਸਕਰਣ ਜਾਰੀ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਸਖਤ ਲੋੜਾਂ ਦੀ ਸ਼ੁਰੂਆਤ ਕਰਦੇ ਹੋਏ।
ਦ ਵਿਕਾਸ ਦੇ ਦੌਰਾਨ ਅਪਵਾਦਾਂ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ ਗਲਤੀ ਸੁਨੇਹਿਆਂ ਨੂੰ ਸੁਧਾਰਨ ਲਈ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਸਾਧਨ ਹੈ। ਹਾਲਾਂਕਿ, ਜਦੋਂ ਇਸਨੂੰ PHPUnit 9 ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਪਰ ਤੁਹਾਡਾ PHP ਸੰਸਕਰਣ (8.1) PHPUnit 10 ਨੂੰ ਲਾਜ਼ਮੀ ਕਰਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਅਜਿਹੀ ਸਥਿਤੀ ਵਿੱਚ ਫਸ ਜਾਂਦੇ ਹੋ ਜਿੱਥੇ ਤੁਹਾਨੂੰ ਪੈਕੇਜ ਨੂੰ ਅੱਪਗ੍ਰੇਡ ਕਰਨਾ ਜਾਂ PHP ਨੂੰ ਡਾਊਨਗ੍ਰੇਡ ਕਰਨਾ ਪੈਂਦਾ ਹੈ। ਇਹ ਸਮਝਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਸਾਰੇ ਪੈਕੇਜਾਂ ਨੂੰ ਅੱਪਗ੍ਰੇਡ ਕਰਨਾ ਹਮੇਸ਼ਾ ਸਭ ਤੋਂ ਵਧੀਆ ਹੱਲ ਨਹੀਂ ਹੁੰਦਾ, ਕਿਉਂਕਿ ਇਹ ਨਵੇਂ ਬੱਗ ਪੇਸ਼ ਕਰ ਸਕਦਾ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਜਦੋਂ ਕਿਸੇ ਵਿਰਾਸਤੀ ਪ੍ਰੋਜੈਕਟ 'ਤੇ ਕੰਮ ਕਰ ਰਿਹਾ ਹੋਵੇ। ਇਸ ਲਈ ਕੁਝ ਡਿਵੈਲਪਰ ਇਹਨਾਂ ਟਕਰਾਵਾਂ ਕਾਰਨ ਹੋਣ ਵਾਲੀਆਂ ਸੰਭਾਵੀ ਸਮੱਸਿਆਵਾਂ ਤੋਂ ਬਚਣ ਲਈ PHP 8.0 'ਤੇ ਰਹਿਣ ਨੂੰ ਤਰਜੀਹ ਦਿੰਦੇ ਹਨ।
ਇਹਨਾਂ ਨਿਰਭਰਤਾ ਵਿਵਾਦਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਦੇ ਨਾਲ-ਨਾਲ, ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਤ ਕਰਨਾ ਵੀ ਮਹੱਤਵਪੂਰਨ ਹੈ ਵਾਤਾਵਰਣ PHPUnit ਅਤੇ Laravel ਦੇ ਬਿਲਟ-ਇਨ ਟੈਸਟਿੰਗ ਟੂਲਸ ਦੁਆਰਾ ਸਧਾਰਨ ਟੈਸਟਾਂ ਨੂੰ ਲਿਖ ਕੇ ਅਤੇ ਚਲਾ ਕੇ, ਤੁਸੀਂ ਵਿਕਾਸ ਚੱਕਰ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਗਲਤੀਆਂ ਨੂੰ ਫੜ ਸਕਦੇ ਹੋ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਸੰਸਕਰਣ ਵਿਵਾਦਾਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਸਥਿਰ ਰਹਿੰਦੀ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਤੁਹਾਡੇ ਲਾਰਵੇਲ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਇੱਕ ਮਜ਼ਬੂਤ ਟੈਸਟਿੰਗ ਕਲਚਰ ਨੂੰ ਬਣਾਈ ਰੱਖਣਾ ਇਸ ਗੱਲ ਦੀ ਗਾਰੰਟੀ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਨਿਰਭਰਤਾ ਵਿੱਚ ਕੋਈ ਵੀ ਬਦਲਾਅ ਅਣਕਿਆਸੇ ਮੁੱਦਿਆਂ ਨੂੰ ਪੇਸ਼ ਨਹੀਂ ਕਰਦਾ, ਤੁਹਾਡੀ ਵਿਕਾਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਵਧੇਰੇ ਭਰੋਸੇਮੰਦ ਬਣਾਉਂਦਾ ਹੈ।
- ਮੈਂ Laravel ਵਿੱਚ "ਕਮਾਂਡ 'ਟੈਸਟ' ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ" ਗਲਤੀ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਾਂ?
- ਗਲਤੀ ਆਮ ਤੌਰ 'ਤੇ ਵਿਚਕਾਰ ਇੱਕ ਸੰਸਕਰਣ ਬੇਮੇਲ ਹੋਣ ਕਾਰਨ ਹੁੰਦੀ ਹੈ ਅਤੇ . ਵਿੱਚ ਤੁਹਾਡੀ ਨਿਰਭਰਤਾ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨਾ ਅਤੇ ਚੱਲ ਰਿਹਾ ਹੈ composer update ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ.
- ਮੈਨੂੰ Laravel 8 ਟੈਸਟਿੰਗ ਲਈ PHP ਅਤੇ PHPUnit ਦੇ ਕਿਹੜੇ ਸੰਸਕਰਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ?
- Laravel 8 ਲਈ, ਇਸ ਨੂੰ PHP 8.0 ਜਾਂ ਇਸ ਤੋਂ ਘੱਟ ਵਰਤਣ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ , ਜਾਂ ਅੱਪਡੇਟ ਕਰੋ PHP 8.1 ਨਾਲ ਅਨੁਕੂਲਤਾ ਲਈ ਅਤੇ .
- ਕੀ ਮੈਂ PHPUnit 10 ਵਿੱਚ ਅਪਗ੍ਰੇਡ ਕੀਤੇ ਬਿਨਾਂ ਟੈਸਟ ਚਲਾ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਤੁਸੀਂ ਜਾਂ ਤਾਂ ਇਸ 'ਤੇ ਡਾਊਨਗ੍ਰੇਡ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਆਪਣਾ ਤਾਲਾ ਲਗਾਓ ਸੰਸਕਰਣ 5.x ਲਈ ਪੈਕੇਜ, ਜੋ PHPUnit 9 ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
- ਮੈਂ ਆਪਣੇ ਮੌਜੂਦਾ PHPUnit ਸੰਸਕਰਣ ਦੀ ਜਾਂਚ ਕਿਵੇਂ ਕਰਾਂ?
- ਚਲਾਓ ਆਪਣੇ Laravel ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ PHPUnit ਦਾ ਸਥਾਪਿਤ ਸੰਸਕਰਣ ਦੇਖਣ ਲਈ।
- ਮੈਂ ਆਪਣੇ ਸਥਾਨਕ ਵਿਕਾਸ ਵਾਤਾਵਰਣ ਵਿੱਚ PHP ਨੂੰ ਕਿਵੇਂ ਡਾਊਨਗ੍ਰੇਡ ਕਰਾਂ?
- ਜੇਕਰ ਤੁਸੀਂ macOS 'ਤੇ Homebrew ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਨਾਲ PHP 8.0 ਨੂੰ ਇੰਸਟਾਲ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਇਸ ਨਾਲ ਲਿੰਕ ਕਰੋ .
PHP 8.1 ਦੇ ਨਾਲ Laravel 8 ਵਿੱਚ ਟੈਸਟ ਚਲਾਉਣ ਵੇਲੇ PHPUnit ਅਤੇ nunomaduro/ਟੱਕਰ ਦੇ ਵਿਚਕਾਰ ਸੰਸਕਰਣ ਟਕਰਾਅ ਜਾਂ ਤਾਂ ਨਿਰਭਰਤਾ ਨੂੰ ਅੱਪਗਰੇਡ ਜਾਂ ਡਾਊਨਗ੍ਰੇਡ ਕਰਕੇ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਨਿਰਭਰਤਾਵਾਂ ਦਾ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਨਿਰਵਿਘਨ ਟੈਸਟ ਰਨ ਅਤੇ ਘੱਟ ਗਲਤੀਆਂ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।
ਸਹੀ ਐਡਜਸਟਮੈਂਟਾਂ ਦੇ ਨਾਲ, ਜਾਂ ਤਾਂ ਟੱਕਰ ਪੈਕੇਜ ਨੂੰ ਅੱਪਗ੍ਰੇਡ ਕਰਕੇ ਜਾਂ PHP 8.0 ਵਿੱਚ ਡਾਊਨਗ੍ਰੇਡ ਕਰਕੇ, ਤੁਸੀਂ "ਕਮਾਂਡ 'ਟੈਸਟ' ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ" ਗਲਤੀ ਨੂੰ ਜਲਦੀ ਹੱਲ ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਤੁਹਾਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਰੁਕਾਵਟ ਦੇ ਤੁਹਾਡੇ Laravel ਪ੍ਰੋਜੈਕਟ ਦੇ ਵਿਕਾਸ ਅਤੇ ਟੈਸਟਿੰਗ 'ਤੇ ਜ਼ਿਆਦਾ ਧਿਆਨ ਦੇਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
- ਲਾਰਵੇਲ ਦੇ ਟੈਸਟਿੰਗ ਟੂਲਸ ਅਤੇ ਨਿਰਭਰਤਾ ਪ੍ਰਬੰਧਨ ਦੁਆਰਾ ਪ੍ਰਦਾਨ ਕੀਤੇ ਗਏ ਸੰਸਕਰਣ ਵਿਵਾਦਾਂ ਅਤੇ ਹੱਲਾਂ ਬਾਰੇ ਵਿਸਤ੍ਰਿਤ: Laravel ਟੈਸਟਿੰਗ ਦਸਤਾਵੇਜ਼
- PHP ਸੰਸਕਰਣ ਵਿਵਾਦਾਂ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ PHPUnit ਨਿਰਭਰਤਾ ਦੇ ਪ੍ਰਬੰਧਨ ਬਾਰੇ ਜਾਣਕਾਰੀ: PHPUnit ਅਧਿਕਾਰਤ ਵੈੱਬਸਾਈਟ
- ਨੂਨੋਮਾਦੁਰੋ/ਟੱਕਰ ਅਤੇ ਲਾਰਵੇਲ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਇਸਦੀ ਅਨੁਕੂਲਤਾ ਲੋੜਾਂ ਬਾਰੇ ਵੇਰਵੇ: nunomaduro/collision GitHub ਰਿਪੋਜ਼ਟਰੀ
- PHP ਨੂੰ ਡਾਊਨਗ੍ਰੇਡ ਕਰਨ ਅਤੇ macOS 'ਤੇ ਖਾਸ ਸੰਸਕਰਣ ਸਥਾਪਤ ਕਰਨ ਲਈ ਕਮਾਂਡਾਂ: ਹੋਮਬਰੂ ਦਸਤਾਵੇਜ਼