当前位置: 首页 > 知识库问答 >
问题:

Codeception名称空间

印振国
2023-03-14

目前,我们有一个使用代码欺骗2.0.16构建的大型接受套件。我们想升级到代码欺骗2.2.5。然而,在安装了Codec0019 2.2.5(via phar)之后,我们根本无法运行我们的测试套件。

我们收到的错误是(底部的其他详细信息):

无法找到并加载[Codeception\Exception\ConfigurationException]模块WebHelper

显然,新版本的加载更改会影响我们的套件。

我已经搜索了迁移说明以帮助我们进行此升级,但没有看到任何迁移说明。

附加细节

  • Codeception版本:2.016==

Codeception项目配置

注意:在测试和更改代码的几个部分后,我注意到主要问题与名称空间有关。正如您在下面所看到的,我们正在使用一个名为“SM”的名称空间,以及该操作系统如何导致问题。

codeception.yml

namespace: SM
paths:
    tests: tests
    log: tests/_log
    data: tests/_data
    helpers: tests/_helpers
html" target="_blank">settings:
    bootstrap: _bootstrap.php
    suite_class: \PHPUnit_Framework_TestSuite
    colors: true
memory_limit: 1024M
    log: true
    strict_xml: true
modules:
    config:
        Db:
            dsn: 'mysql:host=xxxxxxxxxxxx;dbname=<DB_NAME>'
            user: 'USER'
            password: '********'
            dump: tests/_data/dump.sql
            populate: false
            cleanup : false

验收套件配置

class_name: WebGuy
modules:
    enabled:
        - WebDriver
        - WebHelper
        - SistemWSClient
        - TestingSupportWSClient
        - Db
        - TempFileManager
        - Asserts

    config:
        WebDriver:
            url: 'http://xxxxxxxxxxxxxxxxxx/codeception'
            browser : firefox
            host: xxxxxxxxxxxxx
            port: 4444
            wait: 0
            restart: true
            capabilities:
                unexpectedAlertBehaviour: 'accept'

        SistemWSClient:
            url: xxxxxxx
        TestingSupportWSClient:
            url: 'http://x/codeception/rest.php'
        Db:
            dsn: 'mysql:host=xx;port=3306;dbname=x'
            user: 'xxxxxxx'
            password: 'xxxxxxx'
            dump: 'some/dump/file'
            populate: false
            cleanup: false

注意事项:

a)我在测试/_helpers/WebHelper.php顶部添加了命名空间SM(它不起作用)

b)我也试过这个:(不管用)

modules:
    enabled:
        - \WebHelper (or \SM\WebHelper or any other combination)

c) 我还从codeception的站点安装了一个清理过的codeception版本:

  • 下载的codeception(wget)http://codeception.com/codecept.phar)
  • 已安装(codecept引导)
  • 仅为测试目的创建简单测试(codecept生成:cept接受欢迎)

相应地添加了“namespace SM;”和Helpers,我得到了相同的错误,在本例中:

助手\无法找到并加载验收

d) 我还尝试使用codeception的“addnamespace”命令,但没有成功

任何想法都将不胜感激。

谢谢

共有2个答案

南门祯
2023-03-14

我的案例中的错误提到了另一个文件,但是原因和解决方案可能是相同的。

经过几个小时的调试和搜索,我至少找到了问题的答案:http://phptest.club/t/class-helper-acceptance-does-not-exist/808

在我的例子中,我的主要项目的.gitignore中有一行.*。因此,codeception目录尚未提交,特别是包含请求文件的_support目录。

从我的. gitignore中删除_*行并提交和拉取文件,然后修复了问题。

希望这有帮助。

薛欣荣
2023-03-14

在Codeception中,必须构建“助手”。尝试发出以下命令:

codecept build

然后再运行一次。

 类似资料:
  • 在OpenFOAM中,存在一个函数,其名称为exp,表示数学中的幂操作。同时,C++本身也可以进行这个计算,并且函数名称也为exp。这会导致调用的时候,编译器并不知道应该调用OpenFOAM的exp还是C++本身的exp。一种方法是将其中一个exp函数进行改名,比如将OpenFOAM中的exp改成expFoam。但还有更简单的方式。 名称空间专门用于解决上面的问题,它可作为附加信息来区分不同库中相

  • 我只是用MVVM轻型工具包编写一些培训窗口项目。当MVVM Light引用添加到项目中时,下面的资源被自动添加到app.xml中 不幸的是,它不起作用,即由于以下错误,无法构建/编译项目: 我找到了几种针对此问题的常见解决方案(例如:更改解决方案平台、清理、重建、重新启动Visual Studio等),但它们并没有改变什么。创建一个新项目也没有帮助。 有没有其他办法让它起作用?我使用Visual

  • 如上所述,我的XSL中只定义了一个命名空间,如下所示 xml: xsi="w3.org/2001/XMLSchema-instance" 但是,我的输出XML有2个命名空间,如下所示 xsi="w3.org/2001/XMLSchema-instance"xmlns: mea="ibm.com/maximo" 我可以摆脱xmlns: mea="ibm.com/maximo"

  • 我对C++不是很熟悉,这是我第一次使用的不仅仅是名称空间std。下面的有什么区别? VS 在这两个之后,我现在似乎可以创建一个MyClass对象了。一种方式比另一种好吗?另外,如果我都不这样做,我还可以通过每次需要时在MyNamespace::MyClass之前附加MyClass来引用MyClass吗? 接下来,如果我使用第二个选项转发declare,我还需要吗?在我(不是很好)的理解中,在C++

  • 问题内容: 想知道是否有人在使用新功能通过PHP 5.3对类进行命名空间时是否遇到了此问题。 我正在使用单独的类来生成动态类调用,以在应用程序中定义用户类型。基本上,类定义器采用类型的整数表示形式并解释它们,返回一个包含要用作该用户模型的类名的字符串。 我在全局范围内定义了具有该名称的用户类型的对象模型,但是在Editor名称空间中,该用户的编辑器具有另一个名称相同的对象。由于某些原因,PHP不允

  • 问题内容: 经常看到com。*软件包名称空间。“ com”是什么意思?谢谢。 问题答案: 包的命名约定在JLS中指定。这是相关的代码段(本节中还有很多内容): [JLS 7.7唯一程序包名称](http://java.sun.com/docs/books/jls/third_edition/html/packages.html#7.7) 您首先要拥有(或属于拥有)互联网域名的组织,从而形成唯一的软