Phpunit: تثبيت الملحن لا يعمل

تم إنشاؤها على ١٢ نوفمبر ٢٠١٤  ·  4تعليقات  ·  مصدر: sebastianbergmann/phpunit

التثبيت عن طريق إضافة 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 ، لقد تم تنقيحه).

شكرا.

التعليق الأكثر فائدة

شكرًا جزيلاً لك على تقرير الخطأ ، حيث واجهت نفس المشكلة اليوم وتمكنت من حلها عن طريق إزالة سلة المهملات ...

ال 4 كومينتر

لست متأكدا ما هي مشكلتك:

$ 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 بشكل أفضل مما يفعله حاليًا.

شكرًا ، وأنا آسف للتقرير الكاذب.

شكرًا جزيلاً لك على تقرير الخطأ ، حيث واجهت نفس المشكلة اليوم وتمكنت من حلها عن طريق إزالة سلة المهملات ...

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات