Codeception\Test\Unit 未找到
Codeception\Test\Unit not found
我在使用 Yii2 的 Codeception 方面遇到了一些问题。我刚升级到 Yii 2.0.10,一直在用这个 guide
我收到错误:Codeception\Test\Unit not found in vendor\codeception\base\shim.php
。如果我将这个 class 删除,下一个失败是:
namespace Codeception\Module {
class Symfony2 extends Symfony {
}
这是完成的操作:我创建了一个文件 test.php 并将其放入我的配置文件夹中:
<?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]
我是 Codeception 的新手,所以不确定我做错了什么
据我所知,除了在 codeception.yaml
所在的目录中 php vendor/bin/codecept run
之外,您什么都不用做。
请注意,路径 vendor/bin/codecept
可能因您的情况而异。一般来说,Codeception 会解析您的配置并施展魔法。
没必要知道,但如果您有兴趣:它会解析配置并通过使用自己的 PSR-4 兼容 class 自动加载器实现动态地建立命名空间和路径之间的关系。
看这里 - https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Configuration.php#L214 and here https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/Autoload.php
在这种情况下,我从 2.0.9 升级到 2.0.10。我不得不作曲删除 yiisoft/yii2-codeception
、codeception/codeception
、codeception\verify
、codeception\specify
、codeception\base
。
我把试卷folder structure抄了过来。将根项目中的 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
我在使用 Yii2 的 Codeception 方面遇到了一些问题。我刚升级到 Yii 2.0.10,一直在用这个 guide
我收到错误:Codeception\Test\Unit not found in vendor\codeception\base\shim.php
。如果我将这个 class 删除,下一个失败是:
namespace Codeception\Module {
class Symfony2 extends Symfony {
}
这是完成的操作:我创建了一个文件 test.php 并将其放入我的配置文件夹中:
<?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]
我是 Codeception 的新手,所以不确定我做错了什么
据我所知,除了在 codeception.yaml
所在的目录中 php vendor/bin/codecept run
之外,您什么都不用做。
请注意,路径 vendor/bin/codecept
可能因您的情况而异。一般来说,Codeception 会解析您的配置并施展魔法。
没必要知道,但如果您有兴趣:它会解析配置并通过使用自己的 PSR-4 兼容 class 自动加载器实现动态地建立命名空间和路径之间的关系。
看这里 - https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Configuration.php#L214 and here https://github.com/Codeception/Codeception/blob/2.2/src/Codeception/Util/Autoload.php
在这种情况下,我从 2.0.9 升级到 2.0.10。我不得不作曲删除 yiisoft/yii2-codeception
、codeception/codeception
、codeception\verify
、codeception\specify
、codeception\base
。
我把试卷folder structure抄了过来。将根项目中的 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