0

好的,我正在使用 laravel 5 浏览 Larabook 上的教程系列,但我一直在尝试使用 Codeception。我的 laravel 应用程序文件夹名称是“larabook”

从我的 larabook 文件夹中运行 vendor/bin/codecept 可以正确地为我提供选项列表。然后我对其进行了初始化,并且成功了。我按照说明创建了一个 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:', 'john@example.com');
$I->fillField('Password:', 'demo');
$I->fillField('Password Confirmation:', 'demo');
$I->click('Sign Up');

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

但是当我运行“vendor/bin/codecept run functional”时,我收到以下错误。

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

现在,如果我键入 curl --help 我会得到选项列表,这意味着它已正确安装,为什么会发生这种情况?我正在使用带有 vagrant 和 virtualbox 以及 laravel 5 的 windows。

我的“测试”文件夹位于 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

我还在 larabook 的根目录中正确设置了 .env.testing.php 。

4

3 回答 3

1

就像@Alan 所说,如果你没有为 php 安装 curl,在我遇到类似错误的情况下,我只是用这个(在 Ubuntu 15.10 上)安装它,然后我的代码接收测试运行

sudo apt-get install php5-curl

PS:如果您已经在 root 访问权限,则不需要sudo

于 2016-08-30T11:30:07.707 回答
0

跑步

$ curl --help 

表示您的系统上安装了 unix 命令行 curl 程序。

这也意味着你的系统上安装了 unix curl 库。

并不意味着 PHP curl 扩展已安装在您的 PHP 系统上。

使用以下 PHP 代码创建一个小测试文件

phpinfo();

它将列出 PHP 已安装的所有扩展。我的猜测是没有安装 PHP curl 扩展。

请记住,您使用的 PHP 的命令行版本可能与您使用的 PHP 的 Web 版本不同。

于 2014-10-08T17:06:32.023 回答
0

如果您使用的是phpbrew,则可以安装curl扩展:

phpbrew ext install curl

如果出现错误,请安装此库:

sudo apt install libcurl4-openssl-dev

注意:此解决方案已在 Ubuntu 16 上测试

于 2017-07-16T06:49:13.393 回答