Yii2中的Codeception Acceptance套件配置错误

Codeception Acceptance suite configuration error in Yii2

我正在尝试使用 Yii2 Basic 框架设置 Codeception。单元测试工作正常。验收也有效,但如果我想使用 WebDriver 模块,我会收到错误消息。这是 acceptance.suite.yml 文件

class_name: AcceptanceTester
modules:
    enabled:
      - AcceptanceHelper
      - WebDriver:
         url: 'http://mylocalsite'
         browser: phantomjs 

Phantomjs 已安装,运行 PORT 4444

我得到的错误是:

[yii\base\ErrorException]
Illegal offset type in isset or empty

这是让您了解版本的作曲家文件。

{
    "config": {
        "vendor-dir": "protected/vendor"
    },

  "require": {
    "yiisoft/yii2": ">=2.0.5",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "*",

    "guzzlehttp/guzzle": "4.*",
    "mobiledetect/mobiledetectlib" : "2.8.8",
    "codeception/codeception": "2.0.16",
    "codeception/specify": "*",
    "codeception/verify": "*",
    "yii2tech/sitemap": "*",
    "geoip2/geoip2":"~2.0",
    "facebook/facebook-instant-articles-sdk-php": "^1.5"
  },
  "require-dev": {
    "yiisoft/yii2-codeception": "*",
    "yiisoft/yii2-composer": "*",
    "yiisoft/yii2-debug": "*",
    "yiisoft/yii2-gii": "*",
    "yiisoft/yii2-faker": "*"
  },
}

是配置文件有问题还是有人遇到同样的问题?

以下仅为假设,未经验证。旧 Codeception 版本中的 YAML 配置略有不同,AFAIK 有一个额外的 config 部分。您的 composer.json 表明您手动锁定到 "codeception/codeception": "2.0.16"

你可以尝试什么:

更新到 2.2

  • 在composer.json
  • 中使用"codeception/codeception": "^2.2"

提供额外的 config 部分

class_name: AcceptanceTester
modules:
  enabled:
    - WebDriver
  config:
    WebDriver:
      url: http://mylocalsite
      browser: phantomjs
      port: 4444