2017-01-27 26 views
5

Việc xây dựng TravisCI của tôi không thành công do lỗi nghiêm trọng tham chiếu PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() mặc dù PHPUnit chạy mà không gặp sự cố cục bộ. Tôi đã xác minh rằng Composer trên TravisCI đang cài đặt cùng một phiên bản của PHPUnit như những gì tôi đã cài đặt cục bộ.TravisCI PHPUnit Lỗi nghiêm trọng - Gọi tới phương thức chưa xác định PHPUnit_Util_Configuration :: getTestdoxGroupConfiguration()

Tôi nhận thấy rằng một cấu hình nhóm kiểm tra tham chiếu recent patch đặc biệt, nhưng tôi không thể hiểu tại sao thay đổi đó có thể đã làm hỏng PHPUnit trong TravisCI nhưng không phải phiên bản cục bộ của tôi.

Đây là Composer từ TravisCI:

- Installing phpunit/phpunit (5.7.6) Downloading: 100% 

Và đây là những lỗi nghiêm trọng và stack trace từ TravisCI:

PHP Fatal error: Call to undefined method PHPUnit_Util_Configuration::getTestdoxGroupConfiguration() in /home/travis/build/twistofreality/dilmun/vendor/phpunit/phpunit/src/TextUI/TestRunner.php on line 1042 
PHP Stack trace: 
PHP 1. {main}() /home/travis/.phpenv/versions/5.6.5/bin/phpunit:0 
PHP 2. PHPUnit_TextUI_Command::main() /home/travis/.phpenv/versions/5.6.5/bin/phpunit:722 
PHP 3. PHPUnit_TextUI_Command->run() phar:///home/travis/.phpenv/versions/5.6.5/bin/phpunit/phpunit/TextUI/Command.php:104 
PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar:///home/travis/.phpenv/versions/5.6.5/bin/phpunit/phpunit/TextUI/Command.php:152 
PHP 5. PHPUnit_TextUI_TestRunner->handleConfiguration() /home/travis/build/twistofreality/dilmun/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:163 

Trả lời

9

Vấn đề là không phù hợp phiên bản giữa phiên bản TravisCI toàn cầu của PHPUnit và những gì Composer đang cài đặt. Lưu ý hai dòng cuối cùng của stack trace:

PHP 4. PHPUnit_TextUI_TestRunner->doRun() phar:///home/travis/.phpenv/versions/5.6.5/bin/phpunit/phpunit/TextUI/Command.php:152 
PHP 5. PHPUnit_TextUI_TestRunner->handleConfiguration() /home/travis/build/twistofreality/dilmun/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:163 

Dòng cuối cùng tham chiếu vendor/phpunit (trong trường hợp này, phiên bản 5.7.6, mỗi đầu ra Composer), trong khi thứ hai để dòng cuối cùng tham chiếu bin toàn cầu TravisCI của/phpunit (phiên bản 5.6.5). Có khả năng bản vá trong phiên bản gần đây sẽ phá vỡ một cái gì đó khi cố gắng gọi một cái gì đó trong phiên bản toàn cầu.

Cập nhật .travis.yml để sử dụng vendor/bin/phpunit (cộng với bất kỳ cờ nào) để sử dụng phiên bản do Composer cài đặt khắc phục sự cố. Cụ thể, thêm dòng này để .travis.yml (hoặc, như trong trường hợp của tôi, thay đổi dòng phpunit hiện có), sẽ làm các trick:

script: 
    - vendor/bin/phpunit [phpunit flags here] 
1

Chỉ cần thêm

script: 
    - vendor/bin/phpunit 

đến file travis.yml của bạn

Các vấn đề liên quan