首页 > 解决方案 > SilverStripe 使用 Behat 运行测试抛出“No behat.yml found for module silverstripe/framework”错误

问题描述

我正在从事 SilverStripe 项目。我正在尝试为我的项目使用 Behat 编写行为测试。但是当我运行测试时出现错误。以下是我到目前为止所做的。

首先我使用composer安装模块

composer require --dev silverstripe/behat-extension

我在项目根文件夹下有behat.yml文件,定义如下

default:
  suites: []
  extensions:
    SilverStripe\BehatExtension\MinkExtension:
      default_session: facebook_web_driver
      javascript_session: facebook_web_driver
      facebook_web_driver:
        browser: chrome
        wd_host: "http://127.0.0.1:9515"
      browser_name: chrome
    SilverStripe\BehatExtension\Extension:
      bootstrap_file: vendor/silverstripe/cms/tests/behat/serve-bootstrap.php
      screenshot_path: %paths.base%/artifacts/screenshots
      retry_seconds: 4 # default is 2

然后我尝试运行执行以下命令的测试。

vendor/bin/behat @framework

然后我收到以下错误。

In ModuleSuiteLocator.php line 166:

  No behat.yml found for module silverstripe/framework  


behat [-s|--suite SUITE] [-f|--format FORMAT] [-o|--out OUT] [--format-settings FORMAT-SETTINGS] [--init] [--namespace NAMESPACE] [--lang LANG] [--name NAME] [--tags TAGS] [--role ROLE] [--story-syntax] [-d|--definitions DEFINITIONS] [--snippets-for [SNIPPETS-FOR]] [--snippets-type SNIPPETS-TYPE] [--append-snippets] [--no-snippets] [--strict] [--order ORDER] [--rerun] [--stop-on-failure] [--dry-run] [--] [<module> [<paths>]]

vendor/silverstripe/framework 文件夹中没有 behat.yml。实际上,它应该与框架一起提供。但它不存在。我该如何解决这个错误?

标签: bddsilverstripebehatsilverstripe-4

解决方案


对于所有 SilverStripe 模块,测试和相关配置不附带可分发包(例如标签)。

如果你想使用它们,你需要安装“dev”版本。例如4.5.x-dev,而不是~4.5.0.


推荐阅读