标签: codeception

`[Exception] DateTime :: __ construct():`依赖系统的时区设置是不安全的

我正在使用codeception(bdd)进行测试但却出错

[Exception]                                                                                                
  DateTime::__construct(): It is not safe to rely on the system's timezone settings. You   are *required* to   
  use the date.timezone setting 
 or the date_default_timezone_set() function. In case you used 
Run Code Online (Sandbox Code Playgroud)

任何这些
方法,你仍然得到这个警告,你很可能拼写错误的时区标识符.

我们选择Europe/HelsinkiEEST/3.0/DST;

我可不可以做?

php timezone exception codeception

17
推荐指数
2
解决办法
3万
查看次数

如何使用远程代码覆盖设置Codeception?

  • 我的机器上有两个回购
    1. API
    2. 测试API的Codeception仓库

在API repo中,我添加了codeception + c3

"require-dev": {
    "codeception/codeception": "2.*",
    "codeception/c3": "2.*",
Run Code Online (Sandbox Code Playgroud)

我还在index.php中包含了c3.php,但是当尝试用--coverage测试它时我有这个错误

[PHPUnit_Framework_Exception] file_get_contents(http://local.api.codeception.com/c3/report/clear):fai导致开放流:HTTP请求失败!HTTP/1.1 500内部服务器错误

是否有任何使用Codeception进行远程代码覆盖的在线示例?

php code-coverage remote-server codeception

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

如何将失败的屏幕截图包含在代码报告中

刚开始使用codeception 2.0.9并使用phantomjs安装它并运行了一些示例测试.

Codeception在最后给出了一个简洁的html报告,总结了红色和绿色的传递测试,这很好.在报告目录中还有失败测试的屏幕截图,例如ExampleCest.CheckLabel.fail.png ExampleCest.CheckLabel.fail.html

问题,这些如何(自动)链接到report.html,以便可以在浏览器中看到报告中的失败屏幕截图?

codeception

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

如何跳过Codeception cest测试

我想在codeception cest测试中只跳过一个测试.

使用Cept测试可以做$scenario->skip();但不适用于Cest测试.

所以我想做这样的事情.运行第一个测试,但跳过第二个测试.

Class MyTests{

   public funtion test1(){
    // My test steps
     }

   public function test2(){
     $scenario->skip("Work in progress");
     }
}
Run Code Online (Sandbox Code Playgroud)

先感谢您.

php testing skip codeception

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

尝试接受带有Codeception和Yii2的本机js弹出窗口时出错

我正在尝试关闭由Yii2生成的确认js弹出窗口,以确认删除记录,在这种情况下是用户,使用Codeception和他的.

以下是错误:

[WebDriverException]远程响应的JSON解码失败.错误代码:4响应:'无效的命令方法 - 请求=> {"标题":{"接受":"application/json","Content-Length":"0","Content-Type":"application/JSON;字符集= UTF-8" , "主机": "127.0.0.1:4444"},"httpVersion":"1.1","method":"GET","url":"/alert_text","urlParsed" :{ "锚": "", "查询": "", "文件": "alert_text", "目录": "/", "路径": "/ alert_text", "相对的": "/ alert_text", "端口": "", "宿主": "", "密码": "", "用户": "", "用户信息": "", "权威": "", "协议": "","源 ":"/ alert_text", "queryKey":{}, "块":[ "alert_text"]} "urlOriginal": "/会话/ cac855f0-e7f8-11e4-ae75-8baa74cf41b1/alert_text"}"

以下是我的代码:

<?php 
$username = 'foobar';
$email = 'foo@bar.com';

$I = new AcceptanceTester($scenario);
$I->wantTo('Check that users can update their passwords');

$I->haveInDatabase('user', array('username' => $username, 'email' => $email));
$id = $I->grabFromDatabase('user', 'id', array('username' => $username, …
Run Code Online (Sandbox Code Playgroud)

php testing acceptance-testing yii2 codeception

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

在带有代码的动态选择中选择一个选项?

<select>
    <option value=''>-- Select an Option --</option>
    @foreach ($options as $option)
        <option value='{{ $option->value }}'>{{ $option->name }}</option>
    @endforeach
</select> 
Run Code Online (Sandbox Code Playgroud)

选择第一个动态选项

codeception

13
推荐指数
2
解决办法
8786
查看次数

如何在Codeception功能测试中使用PHPUnit断言方法?

我正在使用Codeception进行Laravel 4 PHP应用程序的单元,功能和验收测试.

我的单元测试看起来如下:

use Codeception\Util\Stub;
class ExampleTest extends \Codeception\TestCase\Test 
{
 public function testExample()
 {
  $example = true;
  $this->assertSame($example, true);
 }
}
Run Code Online (Sandbox Code Playgroud)

我的功能测试看起来像这样:

use \TestGuy;
class ExampleCest
{
 public function example(TestGuy $I)
 { 
  $I->amOnPage('/auth/login');
  $I->see('Sign in');
 }
}
Run Code Online (Sandbox Code Playgroud)

但我也想在我的功能测试中使用PHPUnit断言方法.但是当我尝试时,我得到了这个错误:

调用未定义的方法ExampleCest :: assertSame()

如何在Codeception功能测试中使用PHP断言方法?

phpunit codeception

13
推荐指数
3
解决办法
7540
查看次数

Laravel 5/Codeception无法正确路由

我正在尝试使用代码编写一个控制器函数的API测试用例,我遇到的问题是,到控制器函数的路径似乎没有被正确评估,并且评估似乎根据我的不同而不同在我的测试用例中.

以下是我的测试用例中的代码示例:

use \ApiTester;

class CustomerRegisterCest
{
    // tests
    public function testGetRegister(ApiTester $I)
    {
        $I->sendGET('register');
        $I->seeResponseCodeIs(200);
    }

    public function testPostRegister(ApiTester $I)
    {
        $I->sendPOST('register', [
            // set the data in here
        ]);
        $I->seeResponseCodeIs(200);
    }
Run Code Online (Sandbox Code Playgroud)

我有一个包含这些路由的routes.php文件:

Route::get('/', ['as' => 'home', 'uses' => 'HomeController@getIndex']);
Route::get('register', ['as' => 'getRegister', 'uses' =>'RegistrationController@getRegister']);
Route::post('register', ['as' => 'postRegister', 'uses' => 'RegistrationController@postRegister']);
Run Code Online (Sandbox Code Playgroud)

我已经将一些调试语句插入到我的控制器类中,以便我可以看到运行的路由,如下所示:

    Log::debug('GET register');  // or GET index or POST register, etc
Run Code Online (Sandbox Code Playgroud)

目前我已经从控制器类中删除了所有内容,因此只包含调试语句.

当我像上面那样运行测试用例时,我得到以下调试输出:

GET register
GET index
Run Code Online (Sandbox Code Playgroud)

...所以似乎sendPOST('register',...)实际上路由到"/"的GET路由而不是"/ register"的POST路由.在测试用例之外一切正常 - 我可以POST到寄存器路由正常,路由似乎工作正常,问题只出现在一个代码测试案例中.

如果我更改测试用例,以便我在同一个函数调用中执行sendGET和sendPOST,例如:

    // tests
    public function …
Run Code Online (Sandbox Code Playgroud)

php laravel codeception

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

如何在命令行中使用Codeception在验收测试中使用动态URL

我有两个php envs,我现在可以为不同的URL运行这样的东西

modules:
    enabled:
        - WebDriver
        - AcceptanceHelper
    config:
        WebDriver:
            url: 'http://localhost/'
            browser: 'phantomjs'
env:
    alpha:
         modules:
            config:
                WebDriver:
                    url: 'http://myalphasite/'
    beta:
         modules:
            config:
                WebDriver:
                    url: 'http://mybetasite/'
Run Code Online (Sandbox Code Playgroud)

目前我使用命令运行它们 codecept run --env alpha ,或者 codecept run --env beta

有没有办法在运行代码测试时从命令行提供url,比如codecept run site = alpha.test.com然后从配置内部抓取它而不是硬编码网址?

php phantomjs codeception

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

Codeception Cept测试_bootstrap变量

Codeception默认_bootstrap.php文件状态:

<?php
// Here you can initialize variables that will be available to your tests
Run Code Online (Sandbox Code Playgroud)

所以我想在其中初始化一个变量:

<?php

$a = 5;
Run Code Online (Sandbox Code Playgroud)

但是,当我使用它时SomeAcceptanceCept:

<?php
// ....
$I->fillField('description', $a);
Run Code Online (Sandbox Code Playgroud)

我明白了: ErrorException: Undefined variable: a

我做var_dump_bootstrap.php,它确实在验收测试之前运行了一次,但是我的测试中没有变量.

我似乎无法找到任何关于此的文档.

我实际上是在尝试初始化Faker实例以在我的测试中使用.

codeception

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