2016-08-29 5 views
0

Wenn ich das Anwendungsmodell in meinem Abnahmetest ändern, verwendet der Test dieses Modell, wenn ich das gleiche in Funktionstest mache ... der Test verwendet immer noch yii/web/application Ich brauche es um mein Common/Components/Anwendungsmodell zu verwenden. Wie kann ich das ändern?yii2 Codeception Anwendung Klasse falsch

Die funktionale _bootstrap enthält mein eigenes Model ... (common/compontents/Anwendung) ich total verwirrt bin ....

Wenn ich meinen Test Code ausführen:

use tests\codeception\frontend\FunctionalTester; 
$I = new FunctionalTester($scenario); 
$I->amOnPage('/'); 

ich dann erhalten Sie den Fehler:

[yii\base\UnknownPropertyException] Getting unknown property: yii\web\Application::nowSQL 

diese nowSQL wird gemeinsam \ components \ Anwendung definiert, aber irgendwie dieser Funktionstest verwendet den Standard

Acceptance yml

 

    # Codeception Test Suite Configuration 

    # suite for acceptance tests. 
    # perform tests in browser using the Selenium-like tools. 
    # powered by Mink (http://mink.behat.org). 
    # (tip: that's what your customer will see). 
    # (tip: test your ajax and javascript by one of Mink drivers). 

    # RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. 

    class_name: AcceptanceTester 
    modules: 
     enabled: 
      - PhpBrowser 
      - tests\codeception\common\_support\FixtureHelper 
    # you can use WebDriver instead of PhpBrowser to test javascript and ajax. 
    # This will require you to install selenium. See http://codeception.com/docs/04-AcceptanceTests#Selenium 
    # "restart" option is used by the WebDriver to start each time per test-file new session and cookies, 
    # it is useful if you want to login in your app in each test. 
    #  - WebDriver 
     config: 
      PhpBrowser: 
    # PLEASE ADJUST IT TO THE ACTUAL ENTRY POINT WITHOUT PATH INFO 
       url: http://example.com 
    #  WebDriver: 
    #   url: http://localhost:8080 
    #   browser: firefox 
    #   restart: true 

Functional .YML

 

    # Codeception Test Suite Configuration 

    # suite for functional (integration) tests. 
    # emulate web requests and make application process them. 
    # (tip: better to use with frameworks). 

    # RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. 
    #basic/web/index.php 
    class_name: FunctionalTester 
    modules: 
     enabled: 
      - Filesystem 
      - Yii2 
      - tests\codeception\common\_support\FixtureHelper 
     config: 
      Yii2: 
       configFile: '../config/frontend/functional.php' 

+0

Could Sie zeigen den Inhalt der Dateien acceptance.suite.yml und functional.suite.yml an? – Naktibalda

+0

Hinzugefügt die Annahme und functional.yml ... wirklich schätzen Ihre Hilfe ... ziehen meine Haare aus ... – robo

+0

Wie ändern Sie das Anwendungsmodell in Abnahmetests? – Naktibalda

Antwort

0

Um Ihre individuelle Anwendungsklasse für Funktionstests zu verwenden, stellen Sie die 'Klasse' Konfiguration in Ihrer 'functional.php' config.

functional.suite.yml:

class_name: FunctionalTester 
modules: 
    enabled: 
     - Yii2 
    config: 
     Yii2: 
      configFile: 'codeception/config/functional.php' 

functional.php:

return [ 
    'class' => 'my\custom\Application', 
    ... 
]; 

In Bezug auf die Akzeptanz testen Sie die Anwendung Umsetzung in Ihrem index-text.php verwendet ändern müssen:

[...] 
(new my\custom\Application($config))->run(); 
Verwandte Themen