Для кодирования ошибок требуется установленное расширение CURL.

Хорошо, я использую laravel 5, просматривая серию руководств на Larabook, и я застрял в попытке использовать Codeception. Мое имя папки приложения laravel - "larabook"

Запуск vendor/bin/codecept из моей папки larabook работает правильно, предоставляя мне список параметров. Затем я инициализировал его, и это сработало. Я создал файл SignUpCept.php в соответствии с инструкциями и заполнил его следующим.

<?php 

$I = new FunctionalTester($scenario);
$I->am('a guest');
$I->wantTo('Sign up for a Larabook acount');

$I->amOnPage('/');
$I->click('Sign Up');
$I->seeCurrentUrlEquals('/register');

$I->fillField('Username:', 'JohnDoe');
$I->fillField('Email:', '[email protected]');
$I->fillField('Password:', 'demo');
$I->fillField('Password Confirmation:', 'demo');
$I->click('Sign Up');

$I->seeCurrentUrlEquals('');
$I->see('Welcome to Larabook!');

Но когда я запускаю "vendor/bin/codecept run function", я получаю следующую ошибку.

[Exception]
Codeception requires CURL extension installed to make tests run.

Теперь, если я наберу curl --help, я получу список параметров, что означает, что он установлен правильно, так почему же это происходит? Я использую окна с vagrant и virtualbox и laravel 5.

Моя папка «тесты» находится в корне папки моей larabook, и мой файл codeception.yml выглядит так.

actor: Tester
paths:
    tests: tests
    log: tests/_output
    data: tests/_data
    helpers: tests/_support
settings:
    bootstrap: _bootstrap.php
    colors: false
    memory_limit: 1024M
modules:
    config:
        Db:
            dsn: ''
            user: ''
            password: ''
            dump: tests/_data/dump.sql

У меня также правильно настроен .env.testing.php в корне larabook.


person user300979    schedule 08.10.2014    source источник


Ответы (3)


Бег

$ curl --help 

означает, что в вашей системе установлена ​​программа curl из командной строки unix.

Это также означает, что в вашей системе установлены библиотеки unix curl.

Это не означает, что расширение PHP curl установлено в вашей системе PHP.

Создайте небольшой тестовый файл со следующим кодом PHP

phpinfo();

В нем будут перечислены все расширения, установленные PHP. Я предполагаю, что расширение PHP curl не установлено.

Помните, что версия PHP для командной строки, которую вы используете, может отличаться от используемой вами веб-версии PHP.

person Alan Storm    schedule 08.10.2014
comment
Ах, хорошо, я вижу, мне нужно было включить расширение в php.ini. Спасибо! - person user300979; 08.10.2014

Как и сказал @Alan, если вы не установили curl для php, в моей ситуации с аналогичной ошибкой я просто установил его с этим (в Ubuntu 15.10), и после этого мои тесты кодирования были запущены

sudo apt-get install php5-curl

PS: если у вас уже есть root-доступ, вам не нужен sudo

person Oluwatobi Samuel Omisakin    schedule 30.08.2016

Если вы используете phpbrew, вы можете установить расширение curl:

phpbrew ext install curl

В случае ошибки установите эту библиотеку:

sudo apt install libcurl4-openssl-dev

Примечание. Это решение было протестировано на Ubuntu 16.

person yesnik    schedule 16.07.2017