2016-04-27 11 views
4

Ich möchte etwas vor allen Tests in einem bestimmten Cest ausführen und es dann bereinigen, nachdem alle Tests ausgeführt wurden, ähnlich der Methode setUpBeforeClass und tearDownAfterClass in PHPUnit.Codeception vor allen Tests in einem CEST ausführen

Gibt es eine Methode, um so etwas in Codeception zu tun?

Antwort

1

Aus Sicht der Codeception ist Cest-Klasse nur eine Reihe von Cept-Szenarien. Es gibt keinen Objektbereich und keine vor/nach Klassen-Hooks.

Mein Rat ist, Testformat stattdessen zu verwenden und PhpUnit Haken zu verwenden.

Testformat erweitert PHPUnit_Framework_TestCase, so dass setUpBeforeClass funktionieren sollte.

1

Sie können neue Helfer in functional.suite.yml befestigen:

class_name: FunctionalTester 
modules: 
    enabled: 
     - tests\components\helpers\MyHelper 

In Helfer Sie _before und _after Methoden verwenden:

class FixtureHelper extends \Codeception\Module 
{ 
    /** 
    * Method is called before test file run 
    */ 
    public function _before(\Codeception\TestCase $test) 
    { 
     // TODO: Change the autogenerated stub 
    } 

    /** 
    * Method is called after test file run 
    */ 
    public function _after(TestCase $test) 
    { 
     // TODO: Change the autogenerated stub 
    } 
} 

TestCase Methoden können Sie Notwendigkeit _before und _after ausführen bestimmen helfen.

+0

Ich bin mir nicht sicher, ob ich folge. Sind _before und _after nicht vorher gelaufen und jeder Testfall? Wie kann ich unter Verwendung dieser Methode zwischen verschiedenen Zertifikaten unterscheiden? – Casteurr

+0

@Casteurr Sie müssen etwas Code schreiben. 'TestCase' hat einen' getTestFullName'. Es kann hilfreich sein. –

+0

Das erscheint viel zu kompliziert. Ich brauche etwas wie dieses https://phpunit.de/manual/current/de/fixtures.html#fixtures.sharing-fixture – Casteurr