标签: codeception

检查代码接收中是否有 404

我在 Laravel 中使用 Codeception。我尝试编写验收测试。

我想检查 url 是否存在,这意味着我不会收到 404/403/等错误。所以响应应该是 200。

我怎样才能做到这一点?或者我错了,我不应该在验收测试中检查这一点,而是使用“我可以看到一些东西”?我只是对使用有点困惑$I->see,因为标签可能会被更改/更正,所以依赖标签是值得怀疑的。我只是想检查一下至少我没有看到“未找到”。但根据 404 页面设计,可能不会出现“未找到”这一行(如果我只是将“404”放在 404 页面中会怎样)

php acceptance-testing laravel codeception

2
推荐指数
1
解决办法
1818
查看次数

如何使用 Codeception 挂钩 beforeSuite 事件进行 API 验收测试?

我正在使用 Codeception 构建 API 验收测试。

我熟悉那里的单元测试,并且在运行类的所有测试之前,我在这些类中使用了 setUp 方法来实现所需的所有逻辑。

但是我没有找到类似的验收测试。

请注意,我使用的是“类”方法,而不是过程方法。

所以我有一个这样的课程...

class ResourceCest {
    public function _beforeSuite(ApiTester $I)
    {
        // Ideally this would work, but it doesn't.
    }

    public function _before(ApiTester $I) 
    {
        $I->am('Api Tester');
    }
    public function somethingThatIWantToExecute(ApiTester $I)
    {
        $I->sendGet('something');
        // etc
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以创建像 setUp 这样的方法,但随后 Codeception 将其作为测试执行,从而在运行测试时输出一些内容。

api acceptance codeception

2
推荐指数
1
解决办法
2752
查看次数

Codeception设置自定义html报告文件名

使用键 --html运行测试 生成带有结果的 html(默认值:“report.html”) 生成名为 report.html 的 html 报告。如何为 html 报告文件设置另一个名称?

report codeception

2
推荐指数
1
解决办法
841
查看次数

在 Codeception (Laravel) 中为验收测试设置测试数据库

我正在使用 Codeception 框架在 Laravel 5 应用程序中执行验收测试。我想使用单独的数据库进行测试,以防止真实数据库在测试过程中发生变化。我根据 Codeception 文档配置了 .yml 文件。但无论如何,真正的数据库都会受到影响。这是我的配置文件:

/codeception.yml

actor: Tester
 paths:
   tests: tests
    log: tests/_output
    data: tests/_data
   support: tests/_support
   envs: tests/_envs
 settings:
   bootstrap: _bootstrap.php
   colors: true
    memory_limit: 1024M
  extensions:
  enabled:
    - Codeception\Extension\RunFailed
  modules:
  config:
     Db:
        dsn: 'mysql:host=localhost;dbname=realDB'
        user: 'root'
        password: 'secret'
        dump: 'tests/_data/dump.sql'
Run Code Online (Sandbox Code Playgroud)

/tests/acceptance.suite.yml

class_name: AcceptanceTester
modules:
  enabled:
    - WebDriver:
        url: 'http://localhost:8000/'
        browser: firefox
    - Laravel5:
        part: ORM
        cleanup: false # can't wrap into transaction
     Db:
      populate: true
      cleanup: true
    - \Helper\Acceptance
Run Code Online (Sandbox Code Playgroud)

realDB 是真正的数据库,在执行验收测试后会发生变化。我在acceptance.suite.yml 中尝试了不同的清理案例:1) cleanup: false …

php testing acceptance-testing codeception laravel-5

2
推荐指数
1
解决办法
4548
查看次数

不是测试的代码接收公共方法

codeception 将每个公共方法都视为测试。但是我有一个需要公开的方法。然而,这不是一个测试。我可以以某种方式注释它来告诉代码接收它不应该作为测试运行吗?

php testing codeception

2
推荐指数
1
解决办法
131
查看次数

PhpStorm - 无法接受外部 Xdebug 连接

我在使用 Codeception 在 PhpStorm 中为我的应用程序运行测试时出错。我的代码正在通过 Vagrant 运行。

在我的用于 Codeception 测试的index.php的第一行是:

ini_set('xdebug.max_nesting_level', 200);
Run Code Online (Sandbox Code Playgroud)

我通过自制软件安装了 xdebug,这在我的 php 版本输出中:

PHP 7.1.12 (cli) (built: Dec  2 2017 12:15:25) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans   
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,虽然我在 PhpStorm 事件日志中收到错误:

Cannot accept external Xdebug connection: Cannot evaluate expression 'isset($_SERVER['PHP_IDE_CONFIG'])'
Run Code Online (Sandbox Code Playgroud)

在我的 PhpStorm 设置中,我将其设置为接受外部连接:

在此处输入图片说明

在 php info 我有可用的 xdebug 设置:

$ php -i | grep xdebug                 
Additional …
Run Code Online (Sandbox Code Playgroud)

php debugging xdebug phpstorm codeception

2
推荐指数
1
解决办法
3258
查看次数

yii2 codeception 不生成单位套装

我红色了大量的文档和帖子,似乎几乎每个人都对 yii2 代码接收测试有问题。我的问题是,当我尝试生成单位套装时./vendor/bin/codecept generate:test unit Login出现错误

In Configuration.php line 306:  Suite unit was not loaded
Run Code Online (Sandbox Code Playgroud)

什么会导致这种情况?没有在任何地方找到答案。谢谢你!

编辑-unit.suite.yml

suite_namespace: backend\tests\unit
suite_class: UnitTester
actor: UnitTester
modules:
    enabled:
        - Yii2:
            part: [orm, email, fixtures]
        - Asserts
Run Code Online (Sandbox Code Playgroud)

yii2 codeception

2
推荐指数
1
解决办法
3994
查看次数

Codeception:调用未定义的方法FunctionalTester::expectException

根据 Codeption文档,我应该能够HttpException通过运行以下命令来捕获:

$I->expectException(HttpException::class, function () {
    $I->amOnRoute('that-doesnt/exist');
});
Run Code Online (Sandbox Code Playgroud)

然而我却得到了错误:

[RuntimeException] 调用未定义的方法FunctionalTester::expectException

我在用Codeception 2.4.3

codeception

2
推荐指数
1
解决办法
1153
查看次数

如何在屏幕上编写调试信息?

我正在写一个不像我预期的那样工作的测试.

我需要使用一些抓取器,然后在测试运行时转储到屏幕上.

我怎么能这样做?如何回声,而不是用户如何抓取; 我可以使用抓取器,但我不知道如何在测试运行时回声.

codeception

1
推荐指数
2
解决办法
744
查看次数

如何使用Symfony 3目录结构使用Codeception

我最近将我的Symfony项目升级到2.8版,然后采用了Symfony 3目录结构.现在,当我运行Codeception时,它给出了以下错误消息:

Acme\SiteBundle\Entity\Acme\User类中的注释"@Doctrine\ORM\Mapping\Entity"不存在,或者无法自动加载."

所以Doctrine注释不是自动加载的.我知道Symfony 3在自动加载方面做了一些改动.这对Codeception有什么影响,需要调整哪些才能使它正常工作?

upgrade symfony codeception

1
推荐指数
1
解决办法
753
查看次数