actor: AcceptanceTester
modules:
enabled:
# - WebDriver:
- PhpBrowser:
url: http://localhost
port: 19080
- \Helper\Acceptance
step_decorators: ~
第一次测试:
/**
* Checks if the project is reachable and answers as expected.
*/
class ProjectReachableCest
{
public function _before(AcceptanceTester $I): void
{
// do nothing
}
// tests
public function frontpageWorks(AcceptanceTester $I): void
{
$I->amOnPage('/');
$I->see("Customer doesn't exist.");
}
public function adminWorks(AcceptanceTester $I): void
{
$I->amOnSubdomain("admin");
$I->amOnPage("/admin");
$I->see("Kennwort anfordern");
}
}
测试结果:
Codeception PHP Testing Framework v4.1.21
Powered by PHPUnit 9.5.8 by Sebastian Bergmann and contributors.
Acceptance Tests (2) ---------------------------------------
ProjectReachableCest: Frontpage works
Signature: ProjectReachableCest:frontpageWorks
Test: tests/acceptance/ProjectReachableCest.php:frontpageWorks
Scenario --
I am on page "/"
I see "Customer doesn't exist."
PASSED
ProjectReachableCest: Admin works
Signature: ProjectReachableCest:adminWorks
Test: tests/acceptance/ProjectReachableCest.php:adminWorks
Scenario --
I am on subdomain "admin"
I am on page "/admin"
ERROR
------------------------------------------------------------
Unit Tests (0) ---------------------------------------------
------------------------------------------------------------
Time: 00:00.138, Memory: 12.00 MB
There was 1 error:
---------
1) ProjectReachableCest: Admin works
Test tests/acceptance/ProjectReachableCest.php:adminWorks
[GuzzleHttp\Exception\ConnectException] cURL error 6: Could not resolve host: admin.localhost (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://admin.localhost/admin
Scenario Steps:
2. $I->amOnPage("/admin") at tests/acceptance/ProjectReachableCest.php:23
1. $I->amOnSubdomain("admin") at tests/acceptance/ProjectReachableCest.php:22
#1 /home/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:210
#2 /home/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:158
#3 /home/app/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:110
#4 /home/app/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php:47
#5 /home/app/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php:35
#6 /home/app/vendor/guzzlehttp/guzzle/src/Middleware.php:37
#7 /home/app/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php:55
#8 /home/app/vendor/guzzlehttp/guzzle/src/Middleware.php:63
#9 /home/app/vendor/guzzlehttp/guzzle/src/HandlerStack.php:75
#10 /home/app/vendor/guzzlehttp/guzzle/src/Client.php:331
因此,基本上测试都是使用我的配置进行的,但我尝试了各种想法,以使第二个测试能够正常工作,但没有成功。
http://localhost:19080/
http://admin.localhost:19080/
http://admin.localhost:19080/admin/
http://customer1.localhost:19080/
http://customer1.localhost:19080/admin
此外,我很感兴趣,如果有更好的方法,然后在代码中设置这个?我看到可以在codeception中配置多个环境,但这并不是我真正想要的,它是一个应用程序。有人知道如何最好地配置它吗?