首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行behat输出恼人的PHP严格标准错误/注意事项

运行behat输出恼人的PHP严格标准错误/注意事项
EN

Stack Overflow用户
提问于 2015-07-26 23:54:43
回答 2查看 994关注 0票数 0

我尝试从这两个问题中找到答案:

但是没有运气:每当我运行behat时,在运行这些特性之前,我仍然会收到这样的消息:

代码语言:javascript
复制
PHP Strict standards:  Declaration of Behat\Behat\Console\Input\InputDefinition::getSynopsis() should be compatible with Symfony\Component\Console\Input\InputDefinition::getSynopsis($short = false) in C:\phpbin\behat\vendor\behat\behat\src\Behat\Behat\Console\Input\InputDefinition.php on line 157
PHP Stack trace:
PHP   1. {main}() C:\phpbin\behat\vendor\behat\behat\bin\behat:0
PHP   2. Symfony\Component\Console\Application->run() C:\phpbin\behat\vendor\behat\behat\bin\behat:32
PHP   3. Behat\Behat\Console\BehatApplication->doRun() C:\phpbin\behat\vendor\symfony\console\Application.php:126
PHP   4. Behat\Behat\Console\BehatApplication->createCommand() C:\phpbin\behat\vendor\behat\behat\src\Behat\Behat\Console\BehatApplication.php:66
PHP   5. Symfony\Component\DependencyInjection\ContainerBuilder->get() C:\phpbin\behat\vendor\behat\behat\src\Behat\Behat\Console\BehatApplication.php:80
PHP   6. Symfony\Component\DependencyInjection\ContainerBuilder->createService() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:504
PHP   7. ReflectionClass->newInstanceArgs() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:980
PHP   8. Behat\Behat\Console\Command\BehatCommand->__construct() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:980
PHP   9. Composer\Autoload\ClassLoader->loadClass() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:0
PHP  10. Composer\Autoload\includeFile() C:\phpbin\behat\vendor\composer\ClassLoader.php:301

Strict standards: Declaration of Behat\Behat\Console\Input\InputDefinition::getSynopsis() should be compatible with Symfony\Component\Console\Input\InputDefinition::getSynopsis($short = false) in C:\phpbin\behat\vendor\behat\behat\src\Behat\Behat\Console\Input\InputDefinition.php on line 157

Call Stack:
    0.0003     237800   1. {main}() C:\phpbin\behat\vendor\behat\behat\bin\behat:0
    0.0250    1812816   2. Symfony\Component\Console\Application->run() C:\phpbin\behat\vendor\behat\behat\bin\behat:32
    0.0331    2201280   3. Behat\Behat\Console\BehatApplication->doRun() C:\phpbin\behat\vendor\symfony\console\Application.php:126
    0.0331    2201344   4. Behat\Behat\Console\BehatApplication->createCommand() C:\phpbin\behat\vendor\behat\behat\src\Behat\Behat\Console\BehatApplication.php:66
    0.2716    6867024   5. Symfony\Component\DependencyInjection\ContainerBuilder->get() C:\phpbin\behat\vendor\behat\behat\src\Behat\Behat\Console\BehatApplication.php:80
    0.2717    6868160   6. Symfony\Component\DependencyInjection\ContainerBuilder->createService() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:504
    0.2903    7223504   7. ReflectionClass->newInstanceArgs() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:980
    0.2903    7225288   8. Behat\Behat\Console\Command\BehatCommand->__construct() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:980
    0.2904    7226416   9. Composer\Autoload\ClassLoader->loadClass() C:\phpbin\behat\vendor\symfony\dependency-injection\ContainerBuilder.php:0
    0.2909    7226568  10. Composer\Autoload\includeFile() C:\phpbin\behat\vendor\composer\ClassLoader.php:301

Feature: Search
  In order to use the admin pages
  As me (admin)
  I need to be able to load the pages

  Scenario: Navigating to the admin home page - check title and main heading # features\wikipedia.feature:6
    Given I am on "/dabblelabs/admin"                                        # FeatureContext::visit()
    Then I should see "Admin" in the "body" element                          # FeatureContext::assertElementContainsText()
    Then the element "body" should contain "Admin Home"                      # FeatureContext::assertElementContainsString()
    Then the title contains "Admin Home"                                     # FeatureContext::assertTitleContains()

1 scenario (1 passed)
4 steps (4 passed)
0m0.245s

在我的FeatureContext.php文件中,在类定义之上,我有:

代码语言:javascript
复制
ini_set('display_errors', '0');
error_reporting(E_ALL & ~E_STRICT);
define('BEHAT_ERROR_REPORTING', E_ERROR);

但我还是会犯错误。我怎么能把它们藏起来?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-01 09:23:34

原来,我遵循了几个过时的教程,这些教程使用了一个旧的、未维护的Behat版本(2.4.*)。我通过在Behat的Github回购上提出一个问题而学到了这一点:

https://github.com/Behat/Behat/issues/773#issuecomment-126410052

最终对我起作用的composer.json是:

代码语言:javascript
复制
{
    "require": {
        "behat/behat": "@stable",
        "behat/symfony2-extension": "@stable",
        "behat/mink": "@stable",
        "behat/mink-extension": "@stable",
        "behat/mink-browserkit-driver": "@stable",
        "behat/mink-goutte-driver": "@stable",
        "behat/mink-selenium2-driver": "@stable",
        "phpunit/php-code-coverage": "@stable",
        "phpunit/phpunit-mock-objects": "@stable",
        "phpunit/phpunit": "@stable"
        },
    "config": {
        "bin-dir": "bin/"
    }
}

我的behat.yml是:

代码语言:javascript
复制
default:
  suites:
      default:
          contexts:
              - FeatureContext:
                  parameters:
                      my_empty_array:
                          'mydummykey1': 'mydummyvalue1'
  extensions:
    Behat\MinkExtension:
      base_url: http://localhost
      goutte: ~
      selenium2: ~
票数 0
EN

Stack Overflow用户

发布于 2015-07-27 03:02:35

我不是交响乐和Behat的行家,但是

代码语言:javascript
复制
 Declaration of Behat\Behat\Console\Input\InputDefinition::getSynopsis() should be compatible with Symfony\Component\Console\Input\InputDefinition::getSynopsis($short = false) in C:\phpbin\behat\vendor\behat\behat\src\Behat\Behat\Console\Input\InputDefinition.php on line 157

此错误表明您的函数声明不匹配。

我看到了解决en问题的一种方法,在Behat\Behat\Console\Input\InputDefinition::getSynopsis($short = false的声明中添加$short = false)

这只会改变任何东西,只会让你不再烦恼。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31643189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档