2015-10-22 11 views
6

Ich versuche, ein Projekt zu testen, aber nicht in der Lage die Login-Seite aufgrund dieser Fehler zu überprüfen:Codeception AcceptanceTester :: loadSessionSnapshot undefiniert

[RuntimeException] Call to undefined method AcceptanceTester::loadSessionSnapshot

Dies ist mein Code:

<?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'); 

Und meine Konfiguration ist wie folgt:

# 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 

Ich generierte dies mit th e Kommandozeilen-Befehl

codecept.bat generate:cept acceptance loginTest 

Antwort

3

Es gibt kein solches Verfahren in PhpBrowser Modul wird loadSessionSnapshot Verfahren nur von WebDriver vorgesehen.

Verwenden Sie nicht exit() in Tests, es tötet auch Codeception. Verwenden Sie stattdessen die Skip-Methode.

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

die PhpBrowser könnte die Unterstützung bekommen bald: https://github.com/Codeception/Codeception/pull/3321#issuecomment-231206894 –