2015-10-22 11 views
6

sto cercando di testare un progetto, ma in grado di controllare la pagina di accesso a causa di questo errore:Codeception AcceptanceTester :: loadSessionSnapshot è indefinito

[RuntimeException] Call to undefined method AcceptanceTester::loadSessionSnapshot

Questo è il mio codice:

<?php 
$I = new AcceptanceTester($scenario); 
$I->wantTo('Login'); 
$I->amOnPage('/'); 
if($I->loadSessionSnapshot('loggedin')) exit(); 
$I->dontSee('NotFound'); 
//$I->dontSee('Error'); 
$csrf = $I->grabCookie('_token'); 
$I->submitForm('.form',array('login'=>array(
     'username'=>'username', 
     'password'=>'*******' 
    ) 
)); 
$I->saveSessionSnapshot('loggedin'); 
$I->see('username'); 

E la mia configurazione è così

# Codeception Test Suite Configuration 
# 
# Suite for acceptance tests. 
# Perform tests in browser using the WebDriver or PhpBrowser. 
# If you need both WebDriver and PHPBrowser tests - create a separate suite. 

class_name: AcceptanceTester 
modules: 
    enabled: 
     - PhpBrowser: 
      url: http://myweb.com 
     - \Helper\Acceptance 

Ho generato questo utilizzando th comando

codecept.bat generate:cept acceptance loginTest 

risposta

3

Non esiste metodo nel modulo PhpBrowser e comando, metodo loadSessionSnapshot viene fornito solo da WebDriver.

Non utilizzare exit() nei test, elimina anche Codeception. Usa invece il metodo skip.

if($I->loadSessionSnapshot('loggedin')) { 
    $scenario->skip('Already logged in'); 
} 
+0

il PhpBrowser potrebbe ottenere il sostegno presto: https://github.com/Codeception/Codeception/pull/3321#issuecomment-231206894 –