new*_*ter 4 php automated-tests codeception
对不起,我的英语不好。我才开始使用代码接收。一次验收测试需要使用两个 url(网站(url:example.com)和管理员界面(url:edit-example.com))。但我不知道如何实现这一点。我尝试做这样的事情:
接受.suite.yml
modules:
enabled:
- WebDriver:
url: example.com
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
但在本例中,网站的 url 与配置文件 Acceptance.suite.yml 中指定的 url 连接。测试转到 url example.com/example.com,如果使用管理员界面,则转到 example.com/edit-example.com。
问题出在配置文件acceptance.suite.yml 中指定的url 中。如果我从此配置文件中删除 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
Run Code Online (Sandbox Code Playgroud)
代码接收中可能有一些工具允许在函数 amOnPage() 中使用绝对 URL?
有人解决这个问题了吗?也许有人知道如何帮助解决这个问题?
谢谢!
使用带有协议的完整 url:
$website = 'http://example.com';
$adm_int = 'http://edit-example.com';
Run Code Online (Sandbox Code Playgroud)
并使用amOnUrl方法而不是 amOnPage
| 归档时间: |
|
| 查看次数: |
2329 次 |
| 最近记录: |