我按照以下教程设置了功能测试:
主要区别在于我以传统的方式设置了Codeception,因为我不想将测试代码与项目代码混合在一起。
这是我的功能测试(我知道它实际上没有测试任何东西):
<?php
class MyFirstCest {
public function _before(FunctionalTester $I) {
}
public function _after(FunctionalTester $I) {
}
// tests
public function tryToTest(FunctionalTester $I) {
$I->amOnPage('/app/login/');
}
}
当我运行功能测试时,我得到:
[RuntimeException] Call to undefined method FunctionalTester::amOnPage
当我重新build
Codeception时,我得到:
Building Actor classes for suites: acceptance, functional, unit -> AcceptanceTesterActions.php generated successfully. 0 methods added \AcceptanceTester includes modules: PhpBrowser, \Helper\Acceptance -> FunctionalTesterActions.php generated successfully. 0 methods added \FunctionalTester includes modules: -> UnitTesterActions.php generated successfully. 0 methods added \UnitTester includes modules: Asserts, \Helper\Unit
关键部分似乎是\FunctionalTester includes modules:
,这是空的。
我的functional.suite.yml
文件如下所示:
actor: FunctionalTester
modules:
- Symfony:
app_path: 'app'
environment: 'local_test'
class_name: FunctionalTester
modules:
enabled:
- Symfony2:
app_path: 'path/to/app'
var_path: 'path/to/app'
- Doctrine2:
depends: Symfony2
- \Helper\Functional
- PhpBrowser:
url: dev.hmr-app
- \AcmeBundle\Helper\Functional
Symfony应用程序位于path/to/app
。我知道那里有很多垃圾,但那是因为我一直在试验,试图让它发挥作用。
我做错了什么?
答案 0 :(得分:1)
我认为你的问题是你有
modules:
- Symfony:
app_path: 'app'
environment: 'local_test'
在配置中。
该部分完全错位,可能会导致问题。 请删除它,并在启用的部分中使用Symfony重命名Symfony2。
还要确保您使用的是最新版本的Codeception。