WebHU - Programozási kérdések és válaszok

A Symfony Codeception használatával végzett funkcionális tesztelése környezeti példányhibát mutat

A funkcionális tesztelést egy régi kódbázisba próbálom bevezetni különféle eszközökkel, amelyek közül az egyik a Codeception (2.2.0). Az elfogadási tesztek megfelelnek az alap bejelentkezési forgatókönyvnek:

public function login($name, $password)
{
    $I = $this;
    $I->amOnPage('/login');
    $I->submitForm('.loginform', array(
        '_username' => $name,
        '_password' => $password
    ));
    $I->see('User', '.navbar');
}

de amikor megpróbálok futtatni egy funkcionális tesztet ugyanazon forgatókönyv szerint, az nem sikerül

A [Exception] környezetpéldány már be van állítva

A verem nyomkövetését nézve a példányt regisztráló figyelőtől származik:

public function onKernelRequest() {
    $this->getContainer()->get('environment');
}

amely a config.yml-ben található szolgáltatáshoz vezet:

environment:
    class: MyApp\Environment
    calls:
        - [ setContainer, [ @service_container ] ]

az osztályra mutatva:

class Environment {


public function __construct() {
    self::setInstance($this);
   }


public static function setInstance(Environment $environment) {
    if (null !== self::$instance) {
        throw new \Exception('environment instance is already set');
    }
    self::$instance = $environment;
}

Hogyan lehet a legjobban megérteni, hogyan távolíthatom el a hibát a funkcionális teszteléssel? A kód anti-mintázatú, és át kell alakítani? Vagy a Codeception konfigurációmmal van a probléma?

class_name: FunctionalTester
modules:
    enabled:
        - Symfony2:
            app_path: 'app'
            var_path: 'app'
        - Doctrine2:
            depends: Symfony2
        - \Helper\Functional
        - Asserts
        - Sequence

Ha további információra van szüksége, jelezze.

Frissítés

Megtaláltam ezt a választ, és a Symfony modulról PhpBrowserre váltva a tesztek sikeresek voltak. Az eredeti kérdés azonban – hogy hogyan futtassuk le a funkcionális tesztet a Symfony modul használatával – továbbra is fennáll.


  • @DharmaSaputra Mert ez az alapvető lépés, mielőtt folytatnám a tesztelés többi részét. Ha nem tudok átmenni egy felhasználó bejelentkezésének tesztjén, akkor a funkcionális tesztelés többi része nem fog működni 15.11.2017
  • Akkor mi értelme a dokiknak? codeception.com/docs/04-FunctionalTests 15.11.2017
  • Ezért jelöltem meg a Symfonyban. A környezet nem a Symfony magból származik. Követem a Codeception dokumentációját, amely egy bejelentkezési forgatókönyvet tartalmaz egy funkcionális teszthez. Hagyja figyelmen kívül az elfogadási tesztet, mert nem erre vonatkozik a kérdésem. 15.11.2017
  • Bocsánat, rosszindulatú. Akkor eltávolítom az összes legutóbbi megjegyzésemet. Tehát ez a kérdés még mindig tiszta. Elnézést az elrontásért. 15.11.2017

Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..