我已经按照以下教程设置了功能测试:
- http://codeception.com/docs/04-FunctionalTests
- http://codeception.com/docs/modules/Symfony
- http://codeception.com/09-04-2015/using-codeception-for-symfony-projects.html
主要区别在于我以传统方式设置了 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
当我重新构建
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
中。我知道那里有很多垃圾,但那是因为我一直在试验,试图让它发挥作用。
我做错了什么?
最佳答案
我认为你的问题是你有
modules:
- Symfony:
app_path: 'app'
environment: 'local_test'
在配置中。
该部分完全放错了位置,可能会给您带来问题。 请将其删除并在已启用部分中将 Symfony2 重命名为 Symfony。
还要确保您使用的是最新版本的 Codeception。
关于php - Codeception RuntimeException 调用未定义的方法 FunctionalTester::amOnPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46966941/