التثبيت عن طريق إضافة phpunit إلى قسم need-dev من composer.json لا يبدو أنه يعمل.
"require-dev": {
"phpunit/phpunit": "4.3.*"
}
هذا يحاول حاليًا سحب phpunit 4.3.5. يحدد ملف composer.json وجود ملف ثنائي لـ phpunit في bin-dir (bin / phpunit) ، لكن كود phpunit في GitHub لا يحتوي على مثل هذا الدليل ، ناهيك عن ملف phpunit في ذلك الدليل. وبالتالي ، عندما يحاول ربطه في bin / phpunit على مستوى المشروع ، فإنه يفشل نظرًا لعدم وجود ملف لربطه الرمزي في المقام الأول.
هذا على نظام Ubuntu Linux ، باستخدام أحدث مؤلف PHAR ، حيث تم طرح ErrorException على السطر 246 من src / Composer / Installer / LibraryInstaller.php ، ورسالة الخطأ هي "file_put_contents (/ xxxxxx / bin / phpunit): فشل لفتح دفق: لا يوجد مثل هذا الملف أو الدليل "(مسار دليل المشروع ليس xxxxxx ، لقد تم تنقيحه).
شكرا.
لست متأكدا ما هي مشكلتك:
$ cat composer.json
{
"require-dev": {
"phpunit/phpunit": "4.3.*"
}
}
$ php composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing sebastian/version (1.0.3)
Loading from cache
- Installing sebastian/exporter (1.0.2)
Loading from cache
- Installing sebastian/environment (1.2.0)
Loading from cache
- Installing sebastian/diff (1.2.0)
Loading from cache
- Installing sebastian/comparator (1.0.1)
Loading from cache
- Installing symfony/yaml (v2.5.6)
Loading from cache
- Installing doctrine/instantiator (1.0.4)
Loading from cache
- Installing phpunit/php-text-template (1.2.0)
Loading from cache
- Installing phpunit/phpunit-mock-objects (2.3.0)
Loading from cache
- Installing phpunit/php-timer (1.0.5)
Loading from cache
- Installing phpunit/php-file-iterator (1.3.4)
Loading from cache
- Installing phpunit/php-token-stream (1.3.0)
Loading from cache
- Installing phpunit/php-code-coverage (2.0.11)
Loading from cache
- Installing phpunit/phpunit (4.3.5)
Downloading: 100%
phpunit/phpunit suggests installing phpunit/php-invoker (~1.1)
Writing lock file
Generating autoload files
$ ./vendor/bin/phpunit --version
PHPUnit 4.3.5 by Sebastian Bergmann.
أعتذر عن افتراض الحاجة إلى دليل bin في مشروعك. لقد لاحظت هذا الصباح ملف phpunit في جذر مستودع phpunit ، لذا فإن افتراضاتي غير صحيحة ؛ العديد من الاعتذارات. ومع ذلك ، ما زلت أواجه نفس المشكلة. ومع ذلك ، نظرًا لأنك قادر على تثبيته بشكل صحيح باستخدام تثبيت الملحن ، فسوف أغلق هذه البطاقة ، لأن أساسها افتراض غير صحيح. إذا قمت بحل مشكلتي واكتشفت مصدرها ، فسأفتحها أو أعيد فتحها حسب الاقتضاء إذا كانت المشكلة في الواقع متعلقة بـ phpunit. شكرا.
أعتقد أنني اكتشفت مصدر مشكلتي. قام composer.json بإدخال ما يلي:
"require-dev": {
"phpunit/phpunit": "~3.7"
}
و bin / phpunit كان رابط رمزي يشير إلى ../vendor/phpunit/phpunit/composer/bin/phpunit.
لم يكن تثبيت الملحن يحدّث هذا الارتباط الرمزي ، وعندما حاول تحديث محتويات bin / phpunit ، والذي كان رابطًا رمزيًا معطلًا ، فشل ثم حاول التحديث باستخدام طريقة createUnixyProxy ، والتي فشلت أيضًا بسبب الارتباط الرمزي المعطل. يبدو أن التغيير في مكان إنشاء ملف phpunit الثنائي من 3.7 إلى 4.0 يحتمل أن يكون مؤلفًا مربكًا ، على الرغم من أنني أعتقد أن الملحن يجب أن يكون قادرًا على التعامل برشاقة مع الحاجة إلى تحديث ارتباط رمزي معطل في مجلد bin بشكل أفضل مما يفعله حاليًا.
شكرًا ، وأنا آسف للتقرير الكاذب.
شكرًا جزيلاً لك على تقرير الخطأ ، حيث واجهت نفس المشكلة اليوم وتمكنت من حلها عن طريق إزالة سلة المهملات ...
التعليق الأكثر فائدة
شكرًا جزيلاً لك على تقرير الخطأ ، حيث واجهت نفس المشكلة اليوم وتمكنت من حلها عن طريق إزالة سلة المهملات ...