2015-02-11 75 views
2

我尝试过使用codecept在Yii2项目中运行单元测试。并获得下一个错误:未发现代码Yii

PHP Fatal error: Class 'Yii' not found in /var/www/html/mysite/vendor/codeception/codeception/src/Codeception/Module/Yii2.php on line 77 

这是我unit.suite.yml内容:

# Codeception Test Suite Configuration 

# suite for unit (internal) tests. 
# RUN `build` COMMAND AFTER ADDING/REMOVING MODULES. 

class_name: CodeGuy 
modules: 
    enabled: [CodeHelper, Yii2] 
    config: 
     Yii2: 
      configFile: 'config/web.php' 

有谁知道问题是什么?

+0

它看起来像命名空间的问题,顺便说一句这条道路“/供应商/ codeception/codeception/src目录/ Codeception /模块/ Yii2.php“对我来说看起来很奇怪。你运行作曲家更新? – TomaszKane 2015-02-11 12:26:30

+0

对不起,我重新创建了项目。现在我在编写器上安装代码的问题http://stackoverflow.com/q/28455369/1035334 – FiftiN 2015-02-11 13:20:13

+0

@TomaszKane好的,是的,我喜欢。但它没有效果:( – FiftiN 2015-02-11 13:37:19

回答

12

首先确保已安装codeception这是通过作曲家的标准方式:“codeception/codeception”:“*”

你不需要将它添加到您的unit.suite.yml加载Yii运行代码时。只要改变_bootstrap.php文件,你可以找到rootfolder /测试/并添加以下行:

<?php 

// This is global bootstrap for autoloading 

require(__DIR__ . '/../vendor/autoload.php'); 
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); 

$config = require(__DIR__ . '/../config/console.php'); 
// 
$application = new yii\console\Application($config); 
+0

我按照你的建议去做。我仍然得到同样的错误。 我不知道在我的.yml文件中对configFile写什么 – ahmednawazbutt 2017-08-15 12:37:56