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

代码欺骗\测试\未找到单元

锺超英
2023-03-14

我在使用Yii2进行Codeception时遇到了一些问题。我刚刚升级到Yii 2.0.10,一直在使用本指南

我收到错误:Codeception\Test\Unit未在vendor\Codeception\base\shim.php中找到。如果我退出这个课程,下一个课程将失败,即:

namespace Codeception\Module {

class Symfony2 extends Symfony {
}

这就是我们所做的:我创建了一个文件test.php并将其放在我的config文件夹中:

<?php
// config/test.php
$config =  yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/main.php'),
require(__DIR__ . '/main-local.php'),
[
'id' => 'app-tests',
'components' => [
    'db1' => require(__DIR__ . '/db.php'),
]
]
);
return $config;

codeception.yaml

actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
helpers: tests/_support
settings:
bootstrap: _bootstrap.php
memory_limit: 1024M
colors: true
modules:
config:
    Yii2:
        configFile: 'config/test.php'

unit.suite.yml

class_name: UnitTester
modules:
enabled:
  - Asserts
  - Yii2:
        part: [orm, email]

我对代码欺骗完全陌生,所以不确定我做错了什么


共有2个答案

乔宏峻
2023-03-14

在这种情况下,当我从2.0.9升级时-

我复制了测试文件夹结构。更改了根项目中的composer.json,包括:

    "require-dev": {
    "yiisoft/yii2-debug": "*",
    "yiisoft/yii2-gii": "*",
    "yiisoft/yii2-faker": "*",
    "codeception/base": "^2.2.3",
    "codeception/verify": "~0.3.1",
    "codeception/specify": "~0.4.3"
},

我还将test.php和test_db.php文件添加到/config

锺离逸春
2023-03-14

据我所知,除了在目录中运行codeception.yaml之外,您什么都不用做。

请注意,路径供应商/bin/codecep可能在您的情况下有所不同。一般说来,代码欺骗会解析您的html" target="_blank">配置并发挥神奇的作用。

不必知道,但如果您感兴趣:它使用自己的PSR-4兼容类autoloader实现来解析配置并动态地建立名称空间和路径之间的关系。

看看这里-https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Configuration.php#L214 这里呢https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/Autoload.php

 类似资料:
  • 我有一个PHP应用程序,我们正在添加测试,使用代码欺骗。我们试图添加指定(和验证)到我们的套件,但它不被识别。你如何正确设置指定与代码欺骗一起使用? 在我的composer.json中,我有以下内容: 我在添加指定和验证后运行了作曲家更新,并获得了以下输出: 我有一个这样的测试(主要是由generate:test生成的): 当我运行单元测试时,我会得到以下输出: 我使用的参考文献是:http://

  • 我正在编写一组简单的PHP函数,我只使用纯PHP7,没有框架,什么都没有。这些函数稍后将在CMS中的插件中使用,但这不是重点。我想使用Codeception为我的函数编写单元测试(为了熟悉它,我知道Codeception基本上只在这里运行PHPUnit),但我真的不知道如何以合理的方式将Codeception指向我的代码。 我的结构如下:我有,其中包含我想要测试的函数,大致如下: 我使用Compo

  • 我正在尝试使用yii2 codeception。我有一个名为Client的类,它扩展了ActiveRecord。 规则()函数: 我在tests\codeception\unit\models文件夹中创建了一个名为ClientTest的文件,该文件包含以下内容: 当我使用“codecept run unit--debug”命令运行测试时,我看到

  • 我正在尝试使用Codeception进行基本的单元测试。没有使用任何框架。 我的工作根目录如下: 在 我的测试用例是: 我的composer.json中还有: 当我跑的时候

  • 当使用带有PhpBrowser驱动程序的REST模块从代码欺骗测试发出请求时,没有数据和文件通过Silex应用程序。 更改Content-Type标头 将传递给sendPOST的文件数组更改为以下数组: 文件路径文件对象(UploadedFile) 文件数组 该测试可与Silex驱动程序一起使用,但在CI服务器上这不是一个选项。此外,我们还与邮递员进行了检查,API路由按预期工作,文件已发送,一切

  • 我在laravel中有一个资源控制器来管理我的用户。这将创建一个更新用户信息的路由,该路由使用HTTP PUT方法接收请求。 这里显示命令输出: 它在我的web浏览器上正常工作,但当我尝试使用codeception运行测试并提交表单时,我得到一个method not allowed异常,测试失败。 我试图了解为什么会发生这种情况,这似乎是codeception提出的请求。该请求是通过POST而不是