【问题标题】:Behat tests not running on CircleCIBehat 测试未在 CircleCI 上运行
【发布时间】:2016-02-20 05:40:51
【问题描述】:

我在 CircleCI 中运行测试时遇到了麻烦。本地测试运行良好,如屏幕截图右侧所示。但在 CircleCI 中,它将加载 SuiteContext 文件并运行 Before/AfterSuite 方法,但仅此而已。什么会导致这种行为?谢谢

default:
  autoload: Test/Context
  suites:
    default:
      paths:
        features: Test/Features
      contexts:
        - SettingContext: ~
        - LanguageContext: ~
        - ActionContext: ~
        - FrontendContext: ~
        - FileTypeContext: ~
        - FieldContext: ~
        - ChannelContext: ~
        - BrowserContext: ~
        - SuiteContext: ~
        - RequestContext: ~
        - UrlContext: ~
        - TemplateContext: ~
        - PhraseContext: ~
        - CategoryContext: ~
        - EntryContext: ~
  extensions:
    Behat\MinkExtension:
      base_url: http://ee300-clean.dev
      selenium2: ~

Circle 实例中文件的路径:

/home
  /ubuntu
    /project
      /app
        /bin
          /behat
        /behat.yml
        /Test
          /Context
          /Features

circle.yml

test:
  override:
    - cd /home/ubuntu/project/app && bin/behat

我已多次更改该覆盖命令以明确设置 Features 目录的路径,但我尝试过的任何方法都不起作用。

【问题讨论】:

  • 你能发布你的 behat.yml 文件吗?
  • 同意,很高兴看到有关配置和您正在运行的测试的更多详细信息。
  • 用文件更新了 OP。
  • 还有什么有用的?我在第一个运行的测试中放置了一个 var_dump() ,但它甚至没有达到这一点。它显然知道 Context 文件在哪里,并且不会抛出任何 PHP 错误,这很奇怪。这个项目在 CLI 中引导 ExpressionEngine CMS,它在本地运行良好。当/如果它无法在本地引导时,我会从 PHP 错误中听到它,但在这里我没有。
  • 我将本地环境中的 features: Test/Features 路径更改为无效路径,然后运行测试。结果正是我在 Circle 中看到的。它不运行测试,只是 var_dumps 我在 afterSuite() 方法中的“查询运行”行。所以基本上由于某种原因它没有找到通往功能的路径。

标签: behat circleci


【解决方案1】:

这最终成为区分大小写的问题。很久以前,我将我的 features 文件夹重命名为 Features,在我的 Mac 本地它仍然显示为 Features,但是,它作为功能提交给 Git。 Mac 似乎更宽容,即使配置文件中有“功能”,它仍然运行测试,但 Circle 上的 Ubuntu 服务器没有那么宽容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多