2016-11-01 1 views
2

Извините за мой плохой английский. Я только начинаю использовать код. В одном приемочном тесте необходимо использовать два URL-адреса (веб-сайт (url: example.com) и интерфейс администратора (url: edit-example.com)). Но я не знаю, как это реализовать. я пытался сделать что-то вроде этого:Код. Как я могу использовать более одного URL-адреса в своем приемочном тесте?

acceptance.suite.yml

modules: 
    enabled: 
     - WebDriver: 
      url: example.com 

testCept.php

$website = example.com 
$adm_int = edit-example.com 

$I = new AcceptanceTester($scenario); 
// Go to website and do some actions 
$I->amOnPage($website); 
// some code 

// Then go to administrator interface and do some actions 
$I->amOnPage($adm_int); 
//some code 

// Then I go again to website and look that changes confirmed 
$I->amOnPage($website); 
// some code 

Но в этом случае URL веб-сайта сцепляются с URL, указанный в конфигурационном файле acceptance.suite.yml. И тест идет на url example.com/example.com, и в случае с интерфейсом администратора он переходит на example.com/edit-example.com.

Проблема в URL-адресе, указанном в файле конфигурации accept.suite.yml. Если удалить URL из этого конфигурационного файла - codeception возвращает исключение:

[Codeception\Exception\ModuleConfigException]      
    WebDriver module is not configured!        

    Options: browser, url are required         
    Please, update the configuration and set all the required fields 



Exception trace: 
() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Module.php:89 
Codeception\Module->validateConfig() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Module.php:65 
Codeception\Module->_setConfig() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Module.php:58 
Codeception\Module->__construct() at n/a:n/a 
ReflectionClass->newInstanceArgs() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Lib\Di.php:75 
Codeception\Lib\Di->instantiate() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Lib\ModuleContainer.php:109 
Codeception\Lib\ModuleContainer->instantiate() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Lib\ModuleContainer.php:62 
Codeception\Lib\ModuleContainer->create() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\SuiteManager.php:71 
Codeception\SuiteManager->__construct() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Codecept.php:200 
Codeception\Codecept->runSuite() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Codecept.php:172 
Codeception\Codecept->run() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Command\Run.php:184 
Codeception\Command\Run->execute() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Command\Command.php:257 
Symfony\Component\Console\Command\Command->run() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Application.php:874 
Symfony\Component\Console\Application->doRunCommand() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Application.php:195 
Symfony\Component\Console\Application->doRun() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Application.php:126 
Symfony\Component\Console\Application->run() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\codecept:28 

Может быть, есть некоторые инструменты в codeception, которые позволяют использовать абсолютные адреса в функции amOnPage()?

Помог ли кто-нибудь решить эту проблему? Может быть, у кого-то есть идея, как помочь с этой проблемой?

Спасибо!

ответ

4

Используйте полный URL с протоколом:

$website = 'http://example.com'; 
$adm_int = 'http://edit-example.com'; 

И использовать amOnUrl метод вместо amOnPage

+0

Это не относится к моей проблеме. Это будет одно и то же. Тест перейдет на страницу http://example.com/http://example.com. Моя проблема заключается в конкатенации url из config accept.suite.yml и url из тестового файла. –

+2

Я уверен, что он делает. – Naktibalda

+0

Я проверил его. Не работает –

Смежные вопросы