Codeception RuntimeException调用未定义的方法FunctionalTester :: amOnPage

时间:2017-10-27 03:13:27

标签: php symfony unit-testing codeception

我按照以下教程设置了功能测试:

主要区别在于我以传统的方式设置了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。我知道那里有很多垃圾,但那是因为我一直在试验,试图让它发挥作用。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为你的问题是你有

modules:
    - Symfony:
        app_path: 'app'
        environment: 'local_test'

在配置中。

该部分完全错位,可能会导致问题。 请删除它,并在启用的部分中使用Symfony重命名Symfony2。

还要确保您使用的是最新版本的Codeception。